【发布时间】:2016-02-17 16:27:54
【问题描述】:
我正在编写一个 Node.js express 应用程序,并希望使用环境变量来设置服务器应该运行的端口。
但是,我似乎无法让 process.env.PORT 读取我的 PORT 环境变量。
我已经使用export 定义了 PORT 环境变量,如下所示:
export PORT=1234 我也将此行添加到 ~/.bash_profile 文件中,但 process.env.PORT 仍未定义。
当我在终端中运行echo $PORT 时,它会正确显示值(1234)。
我正在运行 Node 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);
【问题讨论】:
-
您是否正在运行内联命令 (
node -e 'process.env.PORT')?如果是这样,您无法访问process对象是正常的。 -
不完全确定内联运行我的命令是什么意思。我正在运行我的程序运行
node server(server.js是主文件)。其他环境变量如HOME(process.env.HOME) 已定义并可访问 -
你能显示你的
server.js的代码吗?顺便说一句,也许你应该更新你的节点版本,因为我们现在是 4.2 版。 -
请查看我的代码编辑。我还尝试将
port变量的赋值移动到第一行,但出现了同样的问题。我没有更新到节点 4.2,因为我正在使用的第三方依赖项存在一些问题,但我现在将升级以测试是否是这个问题。 -
你有想过这个吗?我也有同样的问题