Эта статья представляет собой краткое исследование переменных среды для меня, отсюда и краткий стиль
В узле доступ к переменным среды осуществляется через глобальный процесс.env
console.log(process.env.USER); // username
Есть несколько способов сделать эти переменные доступными для наших программ.
Довольно просто — просто вызовите команду с переменной в командной строке.
DB_CONNECTION="postgresql://username:password@host:port/database_name" node index.js
.env состоят из KEYS и VALUES, которые разделены знаком равенства.
DB_CONNECTION="postgresql://username:password@host:port/database_name"
Эти файлы являются общими, и есть несколько способов сделать их доступными для вашего приложения.
Используйте такой инструмент, как direnv, который загружает переменные из файла и делает их доступными в оболочке; это обычно устанавливается глобально.
По умолчанию direnv ищет файл .envrc, но он также может использовать .env, см. здесь, чтобы настроить его для этого.
Используйте такой инструмент, как dotenv, который загружает переменные из файла и делает их доступными вprocess.env.
У каждого метода есть свои плюсы и минусы.
Использование direnv не зависит от языка и означает на одну зависимость меньше, но это также означает, что потребителям вашего приложения нужен собственный способ загрузки переменных среды, если они не используют direnv;
Использование dotenv гарантирует, что потребители приложения смогут без проблем использовать файл .env, но при этом добавляется пакет только для того, чтобы сделать то, что оболочка может делать изначально.
Недавно в Node была включена поддержка (v20.6.0) для прямого использования файлов .env.
Необходимо использовать флаг
node --env-file=.env index.js
Как и dotenv, содержимое .env становится доступным вprocess.env.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3