дотенв |process.env.NAME не работает при вызове в файле конфигурации - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь обернуть .env значения в файле конфигурации.Он работает при вызове другого файла (например, server.js).Но возвращает undefined при вызове из файла config.js.

Структура папки

root
-- server
---- server.js
-- .env
-- config.js

.env

MAIL_USER = email@gmail.com
PORT = 8000

config.js

const mailUser = process.env.MAIL_USER;
const PORT = process.env.PORT;

module.exports = {
mailUser,
PORT
}

server.js

import dotenv from "dotenv";
dotenv.config();
import app from "./express";
import mongoose from "mongoose";
import config from "../config";

... // some other settings are defined here // ...

app.listen(3000, err => {
  if (err) {
    console.log(err);
  }  
  console.log(`Server running on port ${config.PORT}`);
  console.log(process.env.MAIL_USER);
  console.log(mailUser);
});

ВЫХОД НА КОНСОЛЕ

email@gmail.com
undefined

В чем будет проблема, так что process.env.MAIL_USER равен undefined при вызове из файла config.js и как его решить?

Ответы [ 4 ]

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

В моем случае перезапуск сервера решил проблему.

Кроме того, имейте в виду, что вы экспортируете обе переменные в файле config.js, но только потребляете переменную PORT из этого файла.

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

Вы загружаете расширение dotenv в свой файл server.js, поэтому ваши переменные ENV не отображаются в config.js, попробуйте загрузить их на свой config.js, как вы это сделали:

import dotenv from "dotenv";
dotenv.config();

Как было предложено ранее, вы можете запустить свой скрипт без импорта dotenv lib в свой код:

node -r dotenv/config server.js
0 голосов
/ 13 июня 2019

Я думаю, что если вы хотите сохранить свой config.js только для экспорта этих свойств, вам нужно добавить импорт для dotenv , а также dotenv.config().Затем вы можете вызвать экспортированные значения непосредственно из этого файла, без повторного импорта dotenv в ваш файл server.js.

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

Я бы посоветовал вам попробовать импортировать dotenv из 'dotenv', а затем попробовать использовать dotenv.config () Упоминается в разделе Как использовать dotenv с импортом?

https://www.npmjs.com/package/dotenv

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...