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

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

这就是我所指的。

使用pm2将环境variables传递给node.js

UPDATE

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

但是运行pm2 describe file_name仍然显示一个被caching的值-3000。 重新启动系统给了我重新启动之前最后通过的参数,在我的情况下是3000。

       

网上收集的解决方案 "读取使用pm2传递给node.js的命令行参数"

我觉得你很困惑:

  • 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可用。

参考

从关于process.argv的Node.js文档 :

包含命令行参数的数组。

它不包含环境variables。 您可以使用访问ENV_VARIABLE环境variables

 process.env.ENV_VARIABLE 

看到这个答案 。