27 августа 2022 г. Первоначально опубликовано на techvblogs.com・3 минуты чтения

Переменные среды — это переменные, устанавливаемые операционной системой. Они отделены от логики приложения. Доступ к ним можно получить из приложений и программ через различные API.

Все приложения обычно необходимо развернуть в среде разработки, прежде чем они будут развернуты в производственной среде, и очень важно убедиться, что каждая среда настроена правильно. Если наше производственное приложение использует наши учетные данные для разработки, это будет катастрофой.

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

Существует библиотека Node.js под названием dotenv, которая помогает вам управлять переменными среды и загружать их. Давайте рассмотрим назначение переменных среды, способы их использования и их роль в среде разработки.

Ниже перечислены преимущества использования переменных среды.

  • Безопасность: ключи API/другие секретные ключи не должны размещаться в коде в виде простого текста, чтобы их можно было увидеть напрямую.
  • Гибкость: вы можете вводить условные операторы на основе таких сред, как «Если рабочий сервер, то сделайте X, иначе если тестовый сервер, то сделайте Y…».
  • Принятие: популярные сервисы, такие как Azure или Heroku, поддерживают использование переменных среды.

Существует так много разных способов использования переменных среды в приложениях Node.js. В этой статье мы используем один за другим метод.

1. Используйте переменные среды в приложении Node.js через командную строку

Самый простой способ передать порт в ваш код — использовать его из командной строки.

PORT=8001 node server.js

Здесь мы передаем переменную PORT в команду.

Вы можете передать несколько переменных в командной строке следующим образом:

PORT=8001 DB_HOST=localhost DB_PORT=3306 DB_USERNAME=nodejs DB_PASS=nodejs DB_NAME=env_demo node server.js

Здесь мы передаем переменные PORT, DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, DB_NAME в команду.

Вот пример, который обращается к переменным среды PORT, DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, DB_NAME, которые мы установили в приведенном выше коде.

process.env.PORT
process.env.DB_HOST
process.env.DB_PORT
process.env.DB_USERNAME
process.env.DB_PASSWORD
process.env.DB_NAME

Примечание. process не требует "require", он доступен автоматически.

2. Используйте переменные среды в приложении Node.js через файл .env

В приложении Node.js, если у вас есть более одной переменной среды, вы можете использовать файл .env. Вам просто нужно создать файл .env в корневом каталоге вашего проекта и определить переменные среды в файле .env.

# .env
PORT=8001
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=nodejs
DB_PASSWORD=nodejs
DB_NAME=env_demo

Вы можете определить любые переменные среды в файле .env.

Теперь нам нужно прочитать эти переменные среды в нашем приложении Node.js. Для чтения этих переменных среды в приложении Node.js нам нужно использовать dotenv package.

Сначала установите dotenv пакет в свое приложение Node.js.

npm install dotenv --save

добавьте следующую строку в самый верх вашего входного файла:

require('dotenv').config();

Этот код автоматически загружает файл .env в ваше приложение node.js. Теперь вы можете получить доступ к своим переменным среды в приложении node.js.

require('dotenv').config();
console.log(`Port :: ${process.env.PORT}`)
console.log(`Database Host :: ${process.env.DB_HOST}`)
console.log(`Database Port :: ${process.env.DB_PORT}`)
console.log(`Database Username :: ${process.env.DB_USERNAME}`)
console.log(`Database Password :: ${process.env.DB_PASSWORD}`)
console.log(`Database Name :: ${process.env.DB_NAME}`)

Теперь создадим наш собственныйфайл .gitignoreи добавим в него.envи.gitignoreбудет скажите системе управления версиями игнорировать файлы (или шаблоны файлов), которые мы перечислим.

# .gitignore
.env

Спасибо, что прочитали эту статью.