【发布时间】:2012-06-03 22:37:18
【问题描述】:
我在 Ubuntu 12.04 上,我只是在学习环境变量。我正在尝试从我的应用程序中读取自定义变量,但它始终显示为undefined。这是我的测试应用程序的代码:
// app.js
console.log('Value: ' + process.env.NODE_ENV);
如果我运行以下命令,你会看到变量有一个值:
$ NODE_ENV=production
$ echo $NODE_ENV
production
我可以整天echo $NODE_ENV,它会继续向我显示“生产”,但是当我在我的 Node 应用程序中执行 process.env.NODE_ENV 时,它总是显示“未定义”。
$ node app.js
Value: undefined
但奇怪的是,如果我显示另一个我知道已经存在的环境变量,比如process.env.PATH,那么它就可以工作。
$ node app.js
Value: /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
另一个怪癖是命令printenv list 似乎不包含我的自定义变量NODE_ENV,尽管echo $NODE_ENV 向我显示了正确的值。 printenv NODE_ENV 也没有显示任何内容,但 printenv PATH 显示了正确的值,就像我在节点应用程序中访问 PATH 时一样。
【问题讨论】:
标签: bash node.js ubuntu terminal environment-variables