Контекст:
По мере того, как мой проект Node.js становится больше, потребность в конфигурации возрастает.Этот проект является первым проектом, в котором я переключился с «устаревшего файла конфигурации» (скажем, config.js
или config.json
) на файл dotenv (.env
) для настройки продукта.
Однако, огромное количество используемых переменных среды поднимает вопрос.Все эти переменные среды связаны с ОС и конфигурацией сети, поэтому кажется оправданным для настройки приложения с использованием техники dotenv.
Вопрос:
Скажите, что существует одна средапеременная уже установлена;это испортит конфигурацию.Практический пример этого может быть при загрузке проекта на некоторые из более крупных (облачных) хостов: переменная окружения PORT
машины установлена и поэтому может переопределять значение по умолчанию (см. Пример ниже) или значениечто вы могли ожидать.Для системного администратора эти ошибки было бы трудно отлаживать.
const PORT = process.env.PORT || 3000
Как справиться с этими ловушками?
Текущая ситуация:
Я сейчас использую [name of product]_[name of variable]
как шаблон для моих переменных среды.Это похоже на хак (помните частных пользователей в JS?), И, скорее всего, есть лучшее решение.
Второй вариант, который я имею в виду, - это быть очень явным в файлах .env
с помощью настроек всехпеременные, используемые в продукте.Однако надежность здесь кажется слабым местом: если кто-то удалит одну настройку, весь «защитный механизм» исчезнет, и продукт снова станет уязвимым для этих ошибок.