Как вы обнаруживаете среду в приложении express.js?
Как вы определяете, в какой среде работает приложение expressJS? (разработка, испытание, производство?). В process.env
ничего не отображается с указанием среды...
Я знаю, что вы можете объявлять переменные в файле конфигурации в каждой среде, но это не помогает, если вы динамически загружаете модули...
Ответы
Ответ 1
Вы можете проверить среду, проверив app.settings.env
(это будет работать в Express), или вы можете сделать это более прямым способом, проверив process.env.NODE_ENV
(это среда, найденная в этой переменной, или " development 'по умолчанию < это также работает в других библиотеках, таких как Socket.IO и т.д.).
Ответ 2
app.get('env') также вернет среду.
if ( app.get('env') === 'development' ) {
app.use(express.errorHandler());
}
Ответ 3
Я хотел бы обратиться к прямому пути передачи переменных NODE_ENV на ваш node script, чтобы получить к ним доступ в process.env
"scripts": {
"start": "./node_modules/.bin/cross-env NODE_ENV=development ./node_modules/.bin/nodemon server.js",
"debug": "./node_modules/.bin/cross-env NODE_ENV=development ./node_modules/.bin/nodemon --debug server.js",
"test": "./node_modules/.bin/cross-env NODE_ENV=test ./node_modules/.bin/babel-tape-runner test/test-*.js"
},
может использоваться как
if ( app.get('env') === 'development' ) {
app.use(express.errorHandler());
}
Ответ 4
Можно определить, в какой среде вы находитесь, проверяя app.settings.env
.
Ответ 5
не может получить доступ к серверу nodejs. может обнаруживать node env из выражения, используя app.setting.env
-
var app = express();
- app.setting.env отображает механизм шаблона.
- проверьте в браузере.
Ответ 6
В других ответах есть много полезных рекомендаций. Обычно я делаю это так:
const environment = process.env.NODE_ENV || 'development';
Хорошо, что такой подход не является специфическим для Экспресса как такового, но на самом деле является общепринятой практикой в более широкой экосистеме Node.js.
Кроме того, я реализовал модуль многократного использования, который позволяет автоматически определять среду, анализируя как аргументы CLI, так и переменную NODE_ENV. Это может быть полезно на вашей машине разработки, потому что вы можете легко изменить среду, передав вам аргумент CLI Node.js, например: $ node app.js --prod
.
Более подробную информацию и примеры использования можно найти на странице detect-environment
.