Node.js永远与环境变量

时间:2013-01-31 03:41:27

标签: node.js environment-variables forever

我在服务器上运行以启动节点应用程序的命令是:

sudo IS_PROD=1 node app.js

我已经安装了但似乎无法传递环境变量。

sudo IS_PROD=1 forever node app.js

似乎没有做到这一点。我尝试了几种这样的。如何成功执行此命令或永久设置环境变量?

2 个答案:

答案 0 :(得分:85)

首先,你应该跳过命令中的node事物,它不应该存在,你不应该执行它。 使用自动启动您的脚本。相反,你应该这样做;

sudo IS_PROD=1 forever app.js

您可能希望将服务器作为守护程序启动,而不是在前台启动服务器。例如

sudo IS_PROD=1 forever start app.js

这将在后台创建一个进程,该进程将监视您的节点应用程序并在退出时重新启动它。有关详细信息,请参阅readme

这两种方法都保留了环境变量,就像刚刚使用node时一样。

答案 1 :(得分:14)

app.js:

console.log(process.env.IS_PROD);

使用node(v0.8.21)

$ node app.js
undefined

$ IS_PROD=1 node app.js
1

$ sudo IS_PROD=1 node app.js
1

使用forever(v0.10.0)

$ forever app.js
undefined

$ IS_PROD=1 forever app.js
1

$ sudo IS_PROD=1 forever app.js
1

Documentation

  

<强> process.env

     

包含用户环境的对象。见环境(7)。