我正在编写一个Node.js express应用程序,希望使用环境变量来设置服务器应该运行的端口。
但是,我似乎无法让process.env.PORT
读取我的PORT
环境变量。
我使用export
定义了PORT环境变量,如下所示:export PORT=1234
我还将这一行添加到了~/.bash_profile
文件中,但是process.env.PORT
仍然未定义。
当我在终端中运行echo $PORT
时,它正确地显示了值(1234
)。
我正在运行节点V0.12.7和OSX El Capitan 10.11.1,真的找不到任何额外的线索,可能是什么原因造成的。
谢谢!
- 编辑:**以下是在尝试将
process.env.port
赋给port
变量之前执行的代码
- 编辑:**以下是在尝试将
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);
2条答案
按热度按时间q5lcpyga1#
有一个很棒的npm包
dotenv
,它可以从nodeJS应用程序所在目录下的.env
文件中自动加载任何环境变量,这可以为您提供一个不同的PORT
变量项目,而不是在所有终端上全局定义一个PORT
。至于其他方面,听起来
PORT
应该在那里(你甚至说它是正确的echo
-ing从命令行).你运行node
的终端和你使用echo
的终端是一样的吗?我能想到的唯一的其他问题是,如果你没有重新启动终端,你运行你的服务器在你修改你的~/.bash_profile
后,也可能是某个地方的一个简单的打字错误。我本来想把这个作为评论发布的,但是我没有它的分数。
jtw3ybtb2#
似乎有一个函数或另一个名为
process
的对象,它可以覆盖NodeJS
process
对象。