使用pm2读取传递给node.js的命令行参数

时间:2016-01-05 14:33:18

标签: node.js pm2

我知道如何使用pm2将变量传递给node.js。但我怎么读它们? process.argv不包含它。

这就是我所说的。

Passing environment variables to node.js using pm2

更新

pm2 start file_name.js -- -my_port 8080是正确的方法。 process.argv将包含参数。

但是正在运行pm2 describe file_name仍会显示args -3000这是一个缓存值。 重新启动系统会给我一个在重启之前最后传递的参数,在我的情况下是3000。

2 个答案:

答案 0 :(得分:3)

我觉得你很困惑:

  • node_args
  

node_args list [“--harmony”,“ - max-stack-size = 1024”]在启动时为节点提供的参数

这些是node个可执行选项,例如--harmony--debug=7001。有关更多信息,请参阅node --help

  • args
  

args list [“--enable-logs”,“ - n”,“15”]启动时为您的应用提供的参数

这些是你的脚本参数。在json声明中,它是arg属性,但在命令行中语法为:

pm2 start app.js -- arg1 arg2

这些应该在process.argv中提供。

Reference

答案 1 :(得分:0)

来自Node.js doc about process.argv

  

包含命令行参数的数组。

它不包含环境变量。您可以使用

访问ENV_VARIABLE环境变量
process.env.ENV_VARIABLE

请参阅this answer