如何将自定义参数传递给app

时间:2017-12-03 16:52:06

标签: node.js pm2

我正在尝试通过命令行使用pm2运行节点应用程序,并且只传递一个参数

pm2 start app.js --node-args="41"
pm2 start app.js --env dev --node-args="41"

我尝试用开发环境运行它,没有它,但在两种方式都没有用。 这样做的方法是什么?

2 个答案:

答案 0 :(得分:4)

pm2命令行选项 - node-args 用于将参数传递给Node.js V8引擎,而不是传递给该引擎上运行的程序。

将参数传递给程序的正确方法是:

pm2 start app.js -- 41

对于开发环境:

pm2 start app.js --env dev -- 41

基本上,在最后两个破折号后添加的任何内容都可以通过 process.argv 作为数组访问。

答案 1 :(得分:0)

您可以在项目根目录中定义流程文件,并像这样传递envargs

<强> process.json

{
  "apps" : [
    {
      "name"               : "app-prod",
      "script"             : "app.js",
      "env": {
        "NODE_ENV": "production"
      }
    },
    {
      "name"               : "app-dev",
      "script"             : "app.js",
      "args"               : "41",
      "env": {
        "NODE_ENV": "development"
      }
    }
  ]
}

此定义允许您传递仅在development版本中可用的命令行参数(41)。 然后,如果您要运行应用的development版本,请执行以下操作

pm2 start process.json --only app-dev