process.env показывает все соответствующие пары ключ-значение, но связывание для доступа к тем, которые я добавил в файлы .env, возвращает undefined - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь использовать dotenv для добавления переменных окружения в мой проект Node. НО, когда я пытаюсь получить доступ к пользовательским ENV VARS в моем коде, они возвращают undefined.

Я пытался использовать process.env ["new_var"] для доступа к объекту, но безуспешно. Все переменные, загружаемые узлом по умолчанию, доступны, но те, которые я пытался добавить через мою конфигурацию .env, отображаются как неопределенные. Поэтому я попытался напечатать объект process.env, и он показывает, что dotenv действительно делает то, что заявляет, и добавляет собственные ENV VARS к объекту process.env. Есть идеи, почему я не могу получить к ним доступ? Любая помощь будет принята с благодарностью.

Конфигурация кода и dotenv (первое, что я делаю в своем файле ввода .js):

require('dotenv').config({
    silent: true
});

console.log(process.env);
console.log("pre-existing env var:", process.env.npm_config_prefix);
console.log("new env var:", process.env.EXAMPLE_VAR);

Мой файл .env (помещен в корневой каталог проекта):

EXAMPLE_VAR=123456
ANOTHER_VAR=HELLOWORLD

Вывод на консоль:

disspro@1.0.0 test /Users/akash/Documents/Design/DissPro
babel-node ./test_dotenv.js

{ ...
  npm_config_onload_script: '',
  npm_package_devDependencies_nodemon: '^1.18.9',
  npm_node_execpath: '/usr/local/Cellar/node/11.0.0/bin/node',
  npm_config_link: '',
  npm_config_prefix: '/usr/local',
  EXAMPLE_VAR: '123456',
  ANOTHER_VAR: 'HELLOWORLD' }

pre-existing env var: /usr/local
new env var: undefined
...