На этой странице

Ключевой модуль process в Node.js предоставляет свойство env, где хранятся все переменные окружения, которые были заданы в момент запуска процесса.

Код ниже запускает app.js и задаёт USER_ID и USER_KEY.

Это передаст USER_ID пользователя как 239482, а USER_KEY как foobar. Это подходит для тестирования, однако для production вы, скорее всего, настроите какие-нибудь bash-скрипты для экспорта переменных.

Примечание: process не нужно импортировать — это глобальный объект в Node.js.

Вот пример, который обращается к переменным окружения USER_ID и USER_KEY, заданным в коде выше.

console.log(process.env.USER_ID); // "239482"
console.log(process.env.USER_KEY); // "foobar"

Точно так же можно обращаться к любой заданной вами пользовательской переменной окружения.

В Node.js 20 появилась экспериментальная поддержка .env-файлов.

Теперь можно использовать флаг --env-file, чтобы указать файл окружения при запуске приложения на Node.js. Вот пример файла .env и того, как обращаться к его переменным через process.env.

# файл .env
PORT=3000

В вашем js-файле

Запустите файл app.js с переменными окружения, заданными в файле .env.

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

Также можно передавать несколько аргументов --env-file. Последующие файлы переопределяют переменные, заданные в предыдущих файлах.

Примечание: если одна и та же переменная определена и в окружении, и в файле, приоритет имеет значение из окружения.

Если вы хотите читать из файла .env опционально, можно избежать выброса ошибки при отсутствии файла с помощью флага --env-file-if-exists.

Node.js предоставляет встроенный API для загрузки .env-файлов прямо из кода: process.loadEnvFile(path).

Этот метод загружает переменные из файла .env в process.env — аналогично тому, как работает флаг --env-file, — но его можно вызвать программно.

Поскольку этот метод вызывается уже после инициализации, установка переменных окружения, связанных со стартом (например, NODE_OPTIONS), не влияет на процесс (тем не менее к этим переменным всё ещё можно обращаться через process.env).

# файл .env
PORT=1234

Можно также указать свой путь:

const { loadEnvFile } = require('node:process');
loadEnvFile('./config/.env');