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

5
我知道如何使用pm2将变量传递给node.js,但是如何读取它们呢?process.argv没有包含它们。
这就是我所指的。 使用pm2将环境变量传递给node.js 更新 pm2 start file_name.js -- -my_port 8080 是正确的方法。 process.argv 将包含参数。
但是,运行 pm2 describe file_name 仍然显示 args -3000,这是一个缓存值。 重新启动系统会给我传递最后一次重启前的参数,我的情况下是3000。

请提供一个传递变量的示例。 - MattTannahill
这里是:pm2 start fetch.js -- -port 80 - Aakshaye
删除进程并重新启动也没有帮助。 - Aakshaye
2个回答

6

我觉得你可能混淆了:

  • node_args

node_args 列表 ["--harmony", "--max-stack-size=1024"] 是启动 node 时传递给它的参数。

这些是 node 可执行文件的选项,例如 --harmony 或者 --debug=7001。更多信息请查看 node --help

  • args

args 列表 ["--enable-logs", "-n", "15"] 是启动你的应用时传递给它的参数。

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

pm2 start app.js -- arg1 arg2

这些应该可以在process.argv中找到。

参考资料


谢谢,我有点困惑。我想传递的是命令行参数。运行以下命令后pm2 start fetch.js -- -port 3000 我在 process.argv 中得到了这个结果[ '/usr/bin/nodejs', '/usr/lib/node_modules/pm2/lib/FetchFork.js', '-port', '80' ] - Aakshaye
端口80是我昨天作为参数传递的。因此,这里显然存在某种缓存。 - Aakshaye
是的,一旦进程在内存中,参数可能保持不变。如果已经启动,请使用新参数重新启动它。 - soyuka

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接