Я нахожусь на Ubuntu 12.04, и я только изучаю переменные среды. Я пытаюсь прочитать пользовательскую переменную из моего приложения, но она всегда отображается как undefined
. Вот код моего тестового приложения:
// app.js
console.log('Value: ' + process.env.NODE_ENV);
Если я выполню следующие команды, вы увидите, что переменная имеет значение:
$ NODE_ENV=production
$ echo $NODE_ENV
production
Я могу echo $NODE_ENV
весь день, и он будет продолжать показывать мне "производство", но когда я выполняю process.env.NODE_ENV
в моем приложении Node, он всегда отображает "undefined".
$ 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
команды printenv list
не содержит моей пользовательской переменной NODE_ENV
несмотря на тот факт, что echo $NODE_ENV
показывает мне правильное значение. printenv NODE_ENV
ничего не показывает, но printenv PATH
показывает правильное значение так же, как когда я обращался к PATH
в моем приложении узла.