Переменные среды NodeJs против файла конфигурации - PullRequest
0 голосов
/ 25 января 2019

На самом деле у меня есть приложение nodejs express с его конфигурационным файлом для таких параметров, как хост, порт, токен JWT, параметры БД и многое другое.

Вопрос в том, может ли иметь смысл сохранять эти параметры непосредственно в переменных среды (без какого-либо файла конфигурации) и получать к ним доступ без необходимости выполнять "require" для конфигурации во всех компонентах и ​​модулях.

Во всех примерах, которые я вижу, используется файл конфигурации, возможно, что-то о безопасности или памяти?

Ответы [ 3 ]

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

Файл конфигурации позволяет вам очень быстро настроить всю среду компьютера - например, сегменты S3, URL-адреса API, ключи доступа и т. Д. Если вы разделите их на отдельные process.env.VARIABLE, вам потребуется установить каждый из них ... для которого вы, скорее всего, сделаете скрипт ... и теперь у вас снова есть файл окружения!

Для доступа к переменным окружения вы можете использовать process.env.VARIABLE в вашем коде nodejs (всегда строка), еслипоскольку переменная установлена ​​до начала процесса.

0 голосов
/ 25 января 2019
Файл конфигурации

обычно предназначен для установки значений по умолчанию для переменных среды,

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

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

так что если у вас есть переменная окружения x,

в конфигурационном файле вы можете сохранить его как

config.x = process.env.x || 'defaultVale или mockValue'

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

Другая возможность - использовать файлы .env в nodejs.Я думаю, вам нужно npm установить dotenv в ваше приложение.В идеале разные экземпляры (dev, prod ....) имеют свой собственный файл .env, и вам не нужно каждый раз вызывать require ("dotenv") , если вы хотите получить доступ к переменной окружения.Назовите его в самом начале ie) в app.js , и вы сможете получить доступ к переменной окружения в любом из вложенных файлов.

...