Не могу прочитать пользовательские переменные среды в узле, используя config.get () - PullRequest
0 голосов
/ 01 июня 2019

Я использую конфигурационную библиотеку для управления файлами конфигурации в приложении узла.

Я экспортировал свою пользовательскую переменную env в терминал export app_password=12345

и отобразите его в файл custom-environment-variable.json с помощью

{
  "mail": {
  "password": "app_password"
   }
}

когда я использую config.get('mail.password') в моем файле index.js (корневой модуль).

Я получил error: Configuration property "mail.password" is not defined, подробности ниже:

/Users/tzhong/Documents/vidly- 
backend/node_modules/config/lib/config.js:203
throw new Error('Configuration property "' + property + '" is not 
defined');
^

Error: Configuration property "mail.password" is not defined
    at Config.get (/Users/tzhong/Documents/vidly- 
 backend/node_modules/config/lib/config.js:203:11)

Я использую console.log(process.env.app_password), чтобы проверить, есть ли моя пользовательская переменная env, и app_password показывают в терминале.

 Vidly evn is : Vidly backend -- development
 Vidly mail server is : dev-mail-server
 Mail-password is : 12345
 NODE_ENV is : undefined
 app: development
 Mongan enabled...
 Listenning 3000 port ...

Я хочу использовать console.log(config.get('mail.password')); для отображения моей пользовательской переменной в терминале вместо console.log(process.env.app_password) Есть предложения?

Наконец-то решите проблему: Это крошечная ошибка, в библиотеке конфигурации имя файла для создания пользовательской переменной среды строго, имя файла должно быть 'custom-environment-variables.json', у меня неправильное заклинание на 'environment', в конце концов, спасибо за людей, которые предлагают другой доступный пакет

Ответы [ 2 ]

1 голос
/ 01 июня 2019

Правильный способ сделать это в nodejs - использовать файл .env. Создайте файл .env в корне. Сохраняйте переменные env и их значение в формате key=value, например, password=app_password

В вашем главном файле точек входа требуется пакет dotenv и загрузите переменные env с dotenv.configure() вверху сразу после запроса всех модулей. Подробнее см. здесь .

0 голосов
/ 01 июня 2019

Вместо использования конфигурации используйте .env . Просто добавьте, набрав npm install --save dotenv

password=some value

Вы можете получить доступ к этому

require("dotenv").config();

console.log(`Password is ${process.env.password}.`);
//Output
Password is *some value*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...