pm2设置NODE_ENV环境变量

nodejs中经常使用到环境变量,最常见的如:process.env.NODE_ENV。那么在生产环境中使用pm2如何设置环境变量?

设置方式一:shell命令设置

linuxexport NODE_ENV=development&& node app.js

winset 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