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