我在Express.js中设置如下变量:app.set('HOST', 'demo.sample.com');
。但是,如果我尝试读取此变量,我会将undefined
作为输出。我正在使用process.env.HOST
读取变量。不过,如果我尝试使用app.get('HOST')
读取它,我会得到正确的值。
我无法使用app.get('HOST')
因为我正在读取另一个文件中的变量 - 一个不包含对Express.js应用变量的引用的文件。
如何使用process.env.HOST
获取价值?
答案 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',() - >配置您的应用程序。然后再试一次