NodeJS + ExpressJS,无法读取环境变量

时间:2013-04-11 08:05:57

标签: node.js express

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

我无法使用app.get('HOST')因为我正在读取另一个文件中的变量 - 一个不包含对Express.js应用变量的引用的文件。

如何使用process.env.HOST获取价值?

3 个答案:

答案 0 :(得分:5)

app.set()没有设置环境变量,它只是Express提供的一种便捷方法,可以与app.get()一起使用。

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

process.env.HOST = 'demo.sample.com';

答案 1 :(得分: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

答案 2 :(得分:0)

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

相关问题