Node.js различия между development и production окружениями
Небольшая заметка о том как установить различные конфигурации в зависимости от текущего окружения Dev или Prod
Node предполагает, что он всегда работает в среде разработки. Вы можете сигнализировать Node.js, что вы работаете в production процессе, установив переменную рабочей среды NODE_ENV=production.
Обычно это делается путем выполнения команды в командной строке
export NODE_ENV=production
Но лучше поместить его в файл конфигурации оболочки (например, .bash_profile с оболочкой Bash), поскольку в противном случае этот параметр не сохраняется в случае перезапуска системы.
Вы также можете применить переменную окружения, добавив ее в команду инициализации приложения:
NODE_ENV=production node app.js
Переменная среды - это соглашение, которое широко используется и во внешних библиотеках.
Установка среды для производства в целом обеспечивает
- Логирование системы сводится к минимому, обрабатывая только критические ошибки
- Для повышения производительности
Например, Pug, библиотека шаблонов, используемая Express, компилируется в режиме отладки, если NODE_ENV не установлен как production. Шаблоны Express компилируются в каждом запросе в режиме разработки, в то время как в production версии они кэшируются. Есть еще много примеров.
Express предоставляет привязки конфигурации, специфичные для среды, которые автоматически вызывают на основе значения переменной NODE_ENV:
app.configure('development', () => { //... }) app.configure('production', () => { //... }) app.configure('production', 'staging', () => { //... })
Например, вы можете использовать это для установки разных обработчиков ошибок для разных режимов:
app.configure('development', () => { app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }) app.configure('production', () => { app.use(express.errorHandler()) })