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

Read command line arguments passed to node.js using pm2

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

这就是我指的。

更新

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

但是 运行 pm2 describe file_name 仍然显示 args -3000 这是一个缓存值。 重新启动系统给我重新启动前最后传递的参数,在我的例子中是 3000。

来自Node.js doc about process.argv

An array containing the command line arguments.

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

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

this answer

我觉得你很困惑:

  • node_args

node_args list ["--harmony", "--max-stack-size=1024"] arguments given to node when it is launched

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

  • args

args list ["--enable-logs", "-n", "15"] arguments given to your app when it is launched

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

pm2 start app.js -- arg1 arg2

这些应该在 process.argv 中可用。

Reference