【问题标题】:PM2 and Node: why am I getting env variable undefined?PM2 和 Node:为什么我的环境变量未定义?
【发布时间】:2017-02-02 00:35:41
【问题描述】:

平台:Windows

我想做的很简单:启动 pm2(没有任何 .json 脚本)并让我的节点 Web 应用程序 (ExpressJS) 访问 env。变量。

当我设置时

> set MODE=test 

然后做

> npm start 

我可以访问 process.env.MODE,它可以让我完全按照我的意愿进行“测试”。

现在我似乎无法弄清楚如何在 pm2 中执行此操作。如果我

> set MODE=test 

然后做

pm2 start ./bin/www 

我得到 process.env.MODE 未定义

我也试过了

pm2 start ./bin/www -x -- --MODE=test

也试过

set MODE="test" & pm2 start ./bin/www 

set MODE=test & pm2 start ./bin/www 

似乎没有任何效果。我究竟做错了什么?我应该怎么做?

【问题讨论】:

  • 我猜这是因为pm2 会生成一个新的shell。试试pm2 start env MODE=test ./bin/www 我猜应该可以工作

标签: node.js npm pm2


【解决方案1】:

在 Windows 上,SET 在当前 CMD 会话中设置一个环境变量。您可能需要在运行 pm2 的同一 CMD 会话中设置环境变量。

或者,使用 SETX 设置永久环境变量。您需要关闭并重新打开 CMD 会话,以使使用 SETX 设置的环境变量在所有 CMD 会话中可用。

参考:https://superuser.com/questions/916649/what-is-the-difference-between-setx-and-set-in-environment-variables-in-windows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 2017-09-08
    • 2020-08-09
    • 2021-08-15
    相关资源
    最近更新 更多