Как вы обнаруживаете среду в экспрессе.js app?
Как вы определяете, в какой среде работает приложение expressJS? (разработка, испытание, производство?). Там ничего нет process.env
с указанием условий...
Я знаю, что вы можете объявлять переменные в файле конфигурации в каждой среде, но это не помогает, если вы динамически загружаете модули...
6 ответов:
вы можете либо проверить окружающую среду, проверив
app.settings.env
(Это будет работать в Express), или вы можете сделать это более прямым способом, проверивprocess.env.NODE_ENV
(среда находится в этой переменной или "разработка" по умолчанию
приложение.get ('env') также вернет среду.
if ( app.get('env') === 'development' ) { app.use(express.errorHandler()); }
Я хотел бы обратиться к простому способу передачи переменных NODE_ENV в ваш скрипт узла, чтобы получить к ним доступ в
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()); }
не удается получить доступ к серверу nodejs. можно обнаружить узел env от express с помощью приложения.установочный.env
var app = express();
- приложение.установочный.ОКР оказывает шаблонизатор.
- проверьте в браузере.
есть много полезных рекомендаций в других ответов. Я обычно делаю это так:
const environment = process.env.NODE_ENV || 'development';
хорошо, что такой подход не является специфическим для выражения как такового, но на самом деле является принятой практикой в более широком узле.экосистемы в JS.
кроме того, я реализовал многоразовый модуль, который позволяет автоматически определять среду, анализируя как аргументы CLI, так и переменную NODE_ENV. Это может быть полезно на вашей машине разработки, потому что вы можете легко изменить окружающую среду путем передачи аргументов командной строки для вас узел.js программа, как это:
$ node app.js --prod
.пожалуйста, смотрите более подробную информацию и варианты использования на
detect-environment
странице.