Ответ 1
NODE_ENV
- это переменная среды, NODE_ENV
популярной в среде экспресс- веб-сервера. Когда приложение узла запускается, оно может проверять значение переменной среды и выполнять различные действия в зависимости от значения. NODE_ENV
специально используется (по соглашению), чтобы указать, является ли конкретная среда производственной или средой разработки. Распространенным вариантом использования является выполнение дополнительного кода отладки или регистрации, если он выполняется в среде разработки.
Доступ к NODE_ENV
Вы можете использовать следующий код для доступа к переменной окружения самостоятельно, чтобы вы могли выполнять свои собственные проверки и логику:
var environment = process.env.NODE_ENV
Или, в качестве альтернативы, используйте экспресс ' app.get('env')
(примечание: по умолчанию это "development"
)
Имейте в NODE_ENV
что если вы явно не установили NODE_ENV
для своей среды, он будет undefined
.
Настройка NODE_ENV
Как на самом деле установить переменную среды, зависит от операционной системы и зависит от ваших пользовательских настроек.
Если вы хотите установить переменную среды как разовую, вы можете сделать это из командной строки:
- linux & mac:
export NODE_ENV=production
- windows:
$env:NODE_ENV = 'production'
В долгосрочной перспективе вы должны сохранить это, чтобы оно не сбрасывалось при перезагрузке - вместо того, чтобы перечислить все возможные способы сделать это, я позволю вам найти, как это сделать самостоятельно!
В соответствии с соглашением существует только два значения, которые вы должны использовать для NODE_ENV
, production
или development
, строчные. Ничто не мешает вам добавлять дополнительные значения, но это, вероятно, не очень хорошая идея, так как я вижу много такого рода кода во многих модулях node_module, которые я использую:
var development = process.env.NODE_ENV !== 'production';
Обратите внимание, что это действительно плохая идея - пытаться установить NODE_ENV
изнутри самого приложения узла - если вы это сделаете, оно будет применяться только к процессу, из которого оно было установлено, поэтому, вероятно, все будет работать не так, как вы ожидаете. Не делай этого - ты пожалеешь об этом.