Чтение переменных окружения в Node.js
Как можно прочитать переменные окружения в коде Node.js?
Например, в Python это делается с помощью os.environ['HOME']
.
4 ответ(ов)
Чтобы получить переменные окружения в 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("это не будет выполнено для значений типа false и 0");
}
Вместо этого вам следует делать явные проверки. Я заметил, что использование имени окружения может помочь в этом.
db.connect({
debug: process.env.NODE_ENV === 'development'
});
Если вы хотите использовать строковый ключ, сгенерированный в вашем Node.js приложении, например, var v = 'HOME'
, вы можете использовать process.env[v]
.
В противном случае, вам придется хардкодить process.env.VARNAME
в вашем коде.
Если вы хотите использовать переменные окружения в Node.js, например, переменную с именем HOME
, вы можете сделать это следующим образом:
const HOME = process.env.HOME;
Или используя деструктуризацию:
const { HOME } = process.env;
В обоих случаях значение переменной окружения HOME
будет доступно в вашей программе. Убедитесь, что переменная окружения установлена, иначе вы получите undefined
.
Если вы хотите увидеть все переменные окружения во время выполнения, просто напишите в вашем файле Node.js, например в server.js
:
console.log(process.env);
Этот код выведет объект process.env
, содержащий все переменные окружения, доступные вашему приложению в момент выполнения. Используйте его, чтобы отладить и проверить переменные окружения, которые вы используете в своем проекте.
Использование async/await с циклом forEach
Запись в файлы в Node.js
Функция map для объектов (вместо массивов)
Как получить полный объект в console.log() Node.js, а не '[Object]'?
Как прочитать JSON-файл в память сервера?