5

我在 Express.js 中设置了一个变量,如下所示app.set('HOST', 'demo.sample.com');:但是,如果我尝试读取这个变量,我会得到undefined输出。我正在使用process.env.HOST. 不过,如果我尝试使用 读取它app.get('HOST'),我会得到正确的值。

我不能使用app.get('HOST'),因为我也在另一个文件中读取变量——一个不包含对 Express.js 应用程序变量的引用的文件。

如何使用 获得价值process.env.HOST

4

3 回答 3

5

app.set()不设置环境变量,它只是 Express 提供的一种方便的方法,可以与app.get().

如果要在 JS 代码中设置环境变量,请使用以下命令:

process.env.HOST = 'demo.sample.com';
于 2013-04-11T08:18:49.823 回答
0

更新: process.env 仅读取您的操作系统环境设置。要设置 express vars,请使用 app.get() 和 app.set(),就像在另一个答案中一样。

您的 HOST 变量是否已设置?它通常设置为 HOSTNAME。

[zlatko@droplet ~]$ node
> process.env.HOST
undefined
> process.env.HOSTNAME
'droplet.zlayer.net'
>

不过,您可以在 Bash 中手动设置它(我假设您使用 bash):

[zlatko@droplet ~]$ export HOST=$HOSTNAME
[zlatko@droplet ~]$ node
> process.env.HOST
'droplet.zlayer.net'

>

导出行可能是文字,即:

export HOSTNAME=myhostname.myserver.com
于 2013-04-11T08:08:27.890 回答
0

如果您使用的是 Linux,则需要为 bash/shell 设置环境变量,以便从 APP 中调用它。尝试使用 export NODE_ENV='production' 或 'development' 设置环境变量,然后使用 app.configure 'production',() -> 配置您的应用程序,然后重试

于 2013-04-11T10:36:43.333 回答