Есть ли способ прочитать переменные окружения в коде Node.js?
Например, Python os.environ['HOME']
.
Есть ли способ прочитать переменные окружения в коде Node.js?
Например, Python os.environ['HOME']
.
process.env.ENV_VARIABLE
Где ENV_VARIABLE
- имя переменной, к которой вы хотите получить доступ.
Смотрите Node.js docs для process.env
.
При использовании Node.js вы можете извлекать переменные среды по ключу из объекта process.env
:
например
var mode = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'
Вот ответ, который объяснит настройку переменных среды в node.js
Если вы хотите использовать строковый ключ, сгенерированный в вашей программе Node.js, скажем, var v = 'HOME'
, вы можете использовать
process.env[v]
.
В противном случае process.env.VARNAME
должен быть жестко запрограммирован в вашей программе.
Вы можете использовать пакет env для управления переменными среды для каждого проекта:
.env
в каталоге проекта и поместите туда все свои переменные.require('dotenv').config();
Готово. Теперь вы можете получить доступ к своим переменным среды с помощью process.env.ENV_NAME
.
Чтобы получить переменные среды в Node.JS, вы можете использовать process.env.VARIABLE_NAME, но не забывайте, что назначение свойства на process.env будет неявно преобразовывать значение в строку.
Даже если ваш.env файл определяет переменную типа SHOULD_SEND = false или SHOULD_SEND = 0, значения будут преобразованы в строки ("false" и "0" соответственно) и не будут интерпретироваться как booleans.
if (process.env.SHOULD_SEND) {
mailer.send();
} else {
console.log("this won't be reached with values like false and 0");
}
Вместо этого вы должны сделать явные проверки. Ive, найденный в зависимости от названия среды, проходит долгий путь.
db.connect({
debug: process.env.NODE_ENV === 'development'
});
Почему бы не использовать их в каталоге Users в файле .bash_profile, чтобы вам не приходилось отправлять файлы с переменными в производство.
Вы, ребята, можете также использовать библиотеку, которую я недавно написал.
Он дает вам кучу хороших параметров при чтении переменных среды, таких как:
Надеюсь, вам понравится.
Вы можете проверить репозиторий для более подробной информации: https://github.com/yatki/read-env
Скажем, у вас есть переменные среды, начинающиеся с префикса "EXAMPLE_", как показано ниже:
EXAMPLE_OBJECT_KEY= '{"prop": "value"}',
EXAMPLE_ARRAY_KEY= '[1,2,3, "string", {"prop": "value"}, 5.2]',
EXAMPLE_TRUE_KEY= 'true',
EXAMPLE_FALSE_KEY= 'false',
EXAMPLE_INT_KEY= '5',
EXAMPLE_FLOAT_KEY= '5.2',
EXAMPLE_STRING_KEY= 'example',
ваш-app.js:
import readEnv from 'read-env';
const options = readEnv('EXAMPLE');
console.log(options);
Вывод:
{
arrayKey: [ 1, 2, 3, 'string', { prop: 'value' }, 5.2 ],
falseKey: false,
floatKey: 5.2,
intKey: 5,
objectKey: { prop: 'value' },
stringKey: 'example',
trueKey: true
}
const options = readEnv({
transformKey: false,
parse: false,
});