问题已经解决了,方向搞错了。 pm2的的端口和实际项目里定义的端口没有直接关系,主要是pm2启动的项目中获取env的设置方式和node_env的设置不通用 解决方案,这里记录一下以便以后再踩坑 项目里面使用了env来定义项目运行的环境,这里项目使用了3个环境 目录结构 ├── config ├── config.development.json ├── config.production.json ├── config.test.json ├── index.js index.js module.exports = require(require('path').join(__dirname, ['config', process.env.NODE_ENV || 'development', 'json'].join('.'))); 由于在linux中设置的环境变量是node_env里面的环境变量,所以直接使用node server.js来运行项目是没有问题的 而在pm2中获取 process.env.NODE_ENV 必须在pm2启动项目的时候 --env 测试服务器用的env是test #cd 到项目目录,其中--name用来指定项目别名 --env用来指定NODE_ENV的环境变量 --watch代码变化自动重启 pm2 start server.js --name app --env test --watch
问题已经解决了,方向搞错了。
pm2的的端口和实际项目里定义的端口没有直接关系,主要是pm2启动的项目中获取env的设置方式和node_env的设置不通用
解决方案,这里记录一下以便以后再踩坑
项目里面使用了env来定义项目运行的环境,这里项目使用了3个环境
目录结构
index.js
由于在linux中设置的环境变量是node_env里面的环境变量,所以直接使用node server.js来运行项目是没有问题的
而在pm2中获取 process.env.NODE_ENV 必须在pm2启动项目的时候 --env
测试服务器用的env是test