nodejs中经常使用到环境变量,最常见的如:process.env.NODE_ENV。那么在生产环境中使用pm2如何设置环境变量?
设置方式一:shell命令设置
linux:export NODE_ENV=development&& node app.js
win:set NODE_ENV=development&& node app.js
一般是作临时变量在系统启动时设置,不影响其他系统,也可同时运行开发环境和生产环境,只需要根据process.env.NODE_ENV来运行不同逻辑即可。
设置方式二:配置文件设置
要在pm2设置环境变量也很简单。
pm2 start pm2.json –env production
--env production参数是为了设置环境变量,由pm2.json中的配置决定设置什么样的环境变量。
pm2.json
{
  "apps" : [{
    "name": "issue",
    "cwd": "dest",
    "script"    : "bin/www.js",
    "instances" : "2",
    "exec_mode" : "cluster",
    "env": {
      "NODE_ENV": "development",
      "PORT": 3002
    },
    "env_production" : {
       "NODE_ENV": "production",
       "PORT": 3003
    },
    "log_date_format": "YYYY-MM-DD_HH:mm Z",
    "merge_logs": true
  }]
}
如果不加参数则默认使用
"env": {
    "NODE_ENV": "development",
    "PORT": 3002
}
结果:NODE_ENV=development,PORT=3002
加--env production则使用的是
"env_production" : {
    "NODE_ENV": "production",
    "PORT": 3003
}
结果:NODE_ENV=production,PORT=3003