【问题标题】:Passing environment variables to node.js using pm2使用 pm2 将环境变量传递给 node.js
【发布时间】:2022-03-17 05:59:25
【问题描述】:

我正在尝试将一些参数传递给由 pm2 运行的 Express 应用程序。他们的文档中没有任何提示这样做,但显然可以将一些 EV 传递给您的节点应用程序,例如 SOME_STUFF=xxx pm2 start app.js

【问题讨论】:

    标签: node.js express pm2


    【解决方案1】:

    注意 - 在您的环境中更新环境变量后,您必须执行以下操作:

    pm2 restart all --update-env

    问我怎么知道...

    编辑:还要在节点源目录中查找 .env 文件...

    【讨论】:

    • 漂亮,解决了我一个小时都想弄清楚的问题
    【解决方案2】:

    这实际上是可能的,我很确定前一段时间在 PM2 的文档中。

    无论如何,这就是你需要做的:

    pm2 start app.js -- -some_stuff xxx
    

    基本上,添加--,然后您可以添加自己的应用程序参数。

    设法找到了来源,隐藏得很好:http://pm2.keymetrics.io/docs/usage/quick-start/#42-ways-of-starting-processes

    【讨论】:

    • 奇怪,这对我不起作用。但SOME_STUFF=xxx pm2 start app.js 工作。有什么想法吗?
    • @Andrius 非常感谢。花了两个小时尝试不同的方法,幸运的是到了这里。
    【解决方案3】:

    我在使用 pm2 start app.js -- -some_stuff xxx 传递参数时遇到问题,所以我选择这样做:SOME_STUFF=xxx OTHER_STUFF=abc pm2 start app.js

    然后,当我运行 pm2 logs 时,我能够看到我的应用程序成功启动并且环境变量设置正确,就像我在运行 pm2 logs 时看到这些变量周围的错误一样。

    【讨论】:

      【解决方案4】:

      环境变量不会总是更新,除非你强制它们更新。

      SOME_STUFF=xxx pm2 start app.js --update-env
      

      【讨论】:

        【解决方案5】:

        您应该在生态系统.config.js 中传递 ENV

        ecosystem.config.js(在根目录中)

        module.exports = {
          apps: [
            {
              name: "project-name",
              exec_mode: "cluster",
              instances: "1",
              script: "./server/index.js", // your script
              args: "start",
              env: {
                NODE_ENV: "production", 
                SOME_ENV: "some_value"...
              },
            },
          ],
        };
        

        在控制台中:

        pm2 run ecosystem.config.js
        

        PM2官方文档中有about configuration of ENV的信息

        【讨论】:

        • 我能以某种方式加载 .env 和 .env.local 吗?
        • 我需要运行 pm2 start Ecosystem.config.js,而不是 pm2 run ...
        猜你喜欢
        • 1970-01-01
        • 2020-03-05
        • 2013-12-29
        • 2018-04-09
        • 1970-01-01
        • 2021-09-05
        • 2020-03-27
        • 2017-03-30
        • 2018-08-19
        相关资源
        最近更新 更多