Чтение переменных среды в Node.js - PullRequest
1183 голосов
/ 02 февраля 2011

Есть ли способ прочитать переменные среды в коде Node.js?

Как, например, в Python os.environ['HOME'].

Ответы [ 6 ]

1767 голосов
/ 02 февраля 2011
process.env.ENV_VARIABLE

Где ENV_VARIABLE - имя переменной, к которой вы хотите получить доступ.

См. Документы Node.js для process.env.

123 голосов
/ 31 октября 2015

При использовании Node.js вы можете извлечь переменные окружения по ключу из объекта process.env:

например

var mode   = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'

Вот ответ, который объяснит установку переменных окружения в node.js

50 голосов
/ 12 июля 2013

Если вы хотите использовать строковый ключ, сгенерированный в вашей программе Node.js, скажем, var v = 'HOME', вы можете использовать process.env[v].

В противном случае process.env.VARNAME должен быть жестко задан в вашей программе.

18 голосов
/ 06 сентября 2018

Для извлечения переменных среды в Node.JS вы можете использовать process.env.VARIABLE_NAME , но не забывайте, что присвоение свойства process.env неявно преобразует значение в строку.

Избегайте логической логики

Даже если в вашем файле .env определена переменная типа SHOULD_SEND = false или SHOULD_SEND = 0 , значения будут преобразованы в строки ( «False» и «0» соответственно) и не интерпретируются как логические значения.

if (process.env.SHOULD_SEND) {
 mailer.send();
} else {
  console.log("this won't be reached with values like false and 0");
}

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

 db.connect({
  debug: process.env.NODE_ENV === 'development'
 });
15 голосов
/ 02 апреля 2018

Вы можете использовать пакет env для управления переменными среды для проекта:

  • Создайте файл .env в каталоге проекта и поместите все свои переменные туда.1007 *
  • Добавьте эту строку в верхнюю часть вашего файла заявки:
    require('dotenv').config();

Готово.Теперь вы можете получить доступ к переменным окружения с помощью process.env.ENV_NAME.

0 голосов
/ 22 января 2019

Почему бы не использовать их в каталоге Users в .bash_profile, чтобы вам не приходилось отправлять файлы с вашими переменными в производство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...