Как разрешить конфликты и загрязнение окружающей среды? - PullRequest
0 голосов
/ 24 мая 2018

Контекст:

По мере того, как мой проект Node.js становится больше, потребность в конфигурации возрастает.Этот проект является первым проектом, в котором я переключился с «устаревшего файла конфигурации» (скажем, config.js или config.json) на файл dotenv (.env) для настройки продукта.

Однако, огромное количество используемых переменных среды поднимает вопрос.Все эти переменные среды связаны с ОС и конфигурацией сети, поэтому кажется оправданным для настройки приложения с использованием техники dotenv.

Вопрос:

Скажите, что существует одна средапеременная уже установлена;это испортит конфигурацию.Практический пример этого может быть при загрузке проекта на некоторые из более крупных (облачных) хостов: переменная окружения PORT машины установлена ​​и поэтому может переопределять значение по умолчанию (см. Пример ниже) или значениечто вы могли ожидать.Для системного администратора эти ошибки было бы трудно отлаживать.

const PORT = process.env.PORT || 3000

Как справиться с этими ловушками?

Текущая ситуация:

Я сейчас использую [name of product]_[name of variable] как шаблон для моих переменных среды.Это похоже на хак (помните частных пользователей в JS?), И, скорее всего, есть лучшее решение.

Второй вариант, который я имею в виду, - это быть очень явным в файлах .env с помощью настроек всехпеременные, используемые в продукте.Однако надежность здесь кажется слабым местом: если кто-то удалит одну настройку, весь «защитный механизм» исчезнет, ​​и продукт снова станет уязвимым для этих ошибок.

...