NodeJS process.env变量是未定义的甚至在导出之后

cnh2zyt3  于 2023-02-21  发布在  Node.js
关注(0)|答案(2)|浏览(221)

我正在编写一个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);
q5lcpyga

q5lcpyga1#

有一个很棒的npm包dotenv,它可以从nodeJS应用程序所在目录下的.env文件中自动加载任何环境变量,这可以为您提供一个不同的PORT变量项目,而不是在所有终端上全局定义一个PORT
至于其他方面,听起来PORT应该在那里(你甚至说它是正确的echo-ing从命令行).你运行node的终端和你使用echo的终端是一样的吗?我能想到的唯一的其他问题是,如果你没有重新启动终端,你运行你的服务器在你修改你的~/.bash_profile后,也可能是某个地方的一个简单的打字错误。
我本来想把这个作为评论发布的,但是我没有它的分数。

jtw3ybtb

jtw3ybtb2#

似乎有一个函数或另一个名为process的对象,它可以覆盖NodeJSprocess对象。

相关问题