PM2和Node:为什么我的env变量未定义?

时间:2017-02-02 00:35:42

标签: node.js npm pm2

平台: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 

似乎没什么用。我究竟做错了什么?我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

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

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

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