即使导出后,process.envvariables也是未定义的

我正在编写一个Node.js快速应用程序,并希望使用环境variables来设置服务器应运行的端口。

但是,我似乎无法得到process.env.PORT读取我的PORT环境variables。

我已经定义了PORT环境variables使用export如下所示: export PORT=1234我也已经将此行添加到~/.bash_profile文件,但process.env.PORT保持未定义。

当我在terminal运行echo $PORT时,它显示正确的值( 1234 )。

我正在运行Node V0.12.7和OSX El Capitan 10.11.1,并且无法find任何可能导致此问题的额外线索。

谢谢!

编辑:这是在尝试将process.env.port分配给portvariables之前执行的代码

 var app = require('../app'); var proxy = require("../proxy"); var http = require('http'); var nconf = require('nconf'); nconf.file(__dirname + "/appConf.json"); var appSettings = require('../appSettings'); var port = normalizePort(process.env.PORT || 8080); 

有一个很好的叫做dotenv npm软件包,它将自动从nodeJS应用程序所在的同一目录下的.env文件中加载任何环境variables。 这可能会给你一个不同的PORTvariables项目来投影,而不是在所有terminal上全局定义一个PORT

至于其他的一切,听起来像PORT应该在那里(你甚至说它正确地从命令行echo )。 你使用echo运行同一个terminal的node吗? 我能想到的唯一的其他问题是,如果您在修改~/.bash_profile之后没有重新启动正在运行服务器的terminal,或者可能是某个简单的input错误。

我会张贴这个评论,但我没有得分。