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

使用pm2读取传递给node.js的命令行参数,node.js,pm2,Node.js,Pm2,我知道如何使用pm2将变量传递给node.js。但是我怎么读呢进程。argv不包含它 这就是我指的 更新 pm2启动文件_name.js--my_port 8080是正确的方法process.argv将包含参数 但是运行pm2 descripe file_name仍然显示args-3000,这是一个缓存值。 重新启动系统会给我重新启动前最后一次传递的参数,在我的情况下是3000。来自: 包含命令行参数的数组 它不包含环境变量。您可以使用访问ENV_变量环境变量 process.env.ENV_

我知道如何使用pm2将变量传递给node.js。但是我怎么读呢<代码>进程。argv不包含它

这就是我指的

更新

pm2启动文件_name.js--my_port 8080
是正确的方法
process.argv
将包含参数

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

来自:

包含命令行参数的数组

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

process.env.ENV_VARIABLE

看。

我觉得你很困惑:

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

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

  • args
args list[“--enable logs”、“-n”、“15”]在应用程序启动时为其提供的参数

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

pm2 start app.js -- arg1 arg2
这些应该在
process.argv
中提供


请提供如何传递变量的示例。这里是pm2 start fetch.js--port 80删除进程并重新启动也没有帮助。谢谢,我有点困惑。我要传递的是命令行参数。在运行以下命令pm2 start fetch.js--port 3000之后,我在process.argv['/usr/bin/nodejs','/usr/lib/node_modules/pm2/lib/FetchFork.js','-port',80']port 80是我昨天作为参数传递的。很明显,这里有某种缓存在进行。是的,一旦进程在内存中,参数可能会保持不变。如果它已经启动,请使用新参数重新启动它。