传递给 PM2 的参数

Argument passing to PM2

我想将节点服务投入生产: 当我使用这样的参数启动我的应用程序时:node ./backend -c "uf4m6fhnh" -s "SPNLGZsUoSpQ=" -o "8696"。一切正常。

现在我想用 PM2 将它投入生产: 我已经尝试了 2 种方法(CLI 和 JSON 文件),就像这样:

CLI 版本:

pm2 start backend.js --node-args="-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696" --name MyAppName

还有:

pm2 start backend.js --name MyAppName -- "-c uf4lvm6fhnh -s SPNLGZsUoSpQ= -o 8696"

配置文件(JSON):

{
  "apps": [
    {
      "name": "MyAppName ",
      "script": "./backend.js",
      "node_args": [
          "-c",
          "uf4lvm6fhnh",
          "-s",
          "SPNLGZsUoSpQ=",
          "-o",
          "8696"
        ]
    }
  ]
}

然后:pm2 start myConfigJson.json

对于每个可能的解决方案,我的 pm2 logs 中都有相同的错误: Error: Cannot find module '/home/me/Projects/Project/uf4lvm6fhnh' (注意,未找到的模块是我传递的参数)

有什么想法吗?

改用args

node_argsinterpreter_args 的别名,它将参数传递给节点本身,而不是脚本。因此,您的命令行最终会在节点本身上调用 -c|--check

http://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/#programmatic-api and https://nodejs.org/api/cli.html#cli_c_check