【学习笔记】使用pm2管理进程时环境变量读取问题
今天想把我Linux上的项目做到开机自启,通过上网查阅发现可以通过pm2进程管理工具或者自定义服务实现开机自启动,但就当我使用pm2服务启动后,发现我的项目并未生效,提示我的服务为500错误,于是我使用pm2 list
查看项目状态
显示状态正常,于是使用pm2 logs api-nav
查看日志发现报错
1 | MongoDB连接失败: MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string. |

这个错误我在本地部署以及直接node运行都从未出现过

显然是正常的,翻译错误提示易知:uri应该是字符串类型,而实际运行时获取到的是undefined,然后我在数据库连接对象中把uri更改为字符串,而非通过.env
文件获取,项目就正常运行了,也就是说明在项目运行时对.env
文件没有正确的读取
将红框中的删除,蓝框中的修改为实际值,可以暂时解决此问题,但是并非长远之计。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 亦晓白笔记!