Файл .env не определен с использованием require ('dotenv'). config (); - PullRequest
0 голосов
/ 02 октября 2019

Возникли проблемы с получением dotenv, чтобы забрать мой файл .env

Вот моя файловая структура:

├── app.js
├── node_modules
│   └── ...
├── package.json
├── routes
│   └── index.js
└── start.js
│   
└── .env 

А вот мой start.js:

require('dotenv').config();
console.log(process.env.MONGO_URI);
const mongoose = require('mongoose');


mongoose.connect(process.env.DATABASE, { useMongoClient: true });
mongoose.Promise = global.Promise;
mongoose.connection
  .on('connected', () => {
    console.log(`Mongoose connection open on ${process.env.DATABASE}`);
  })
  .on('error', (err) => {
    console.log(`Connection error: ${err.message}`);
  });

внутри моего .env выглядит следующим образом:

mongodb+srv://username:password@livewelldb-aqoul.mongodb.net/test?retryWrites=true&w=majority

К сожалению, при запуске моего приложения node.js я получаю следующую ошибку:

C:\Users\user\Desktop\project\node_modules\mongoose\lib\connection.js:520
    throw new MongooseError('The `uri` parameter to `openUri()` must be a ' +
    ^
MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.

это происходит потому, что dotenv делаетПохоже, я не могу найти мой файл .env по какой-то причине. когда я запускаю console.log(process.env.MONGO_URI);, я получаю неопределенное значение.

Не знаю почему. У большинства людей с этой проблемой есть одна из следующих проблем:

  • они не запускают свою программу из корневого каталога
  • , их .env не находится в их корневом каталоге
  • их .env названы неверно, например, "config.env"
  • их .env отформатированы в формате, отличном от UTF-8

У меня нет ни одного из нихпроблемы. Я не уверен, что может быть причиной.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Пожалуйста, проверьте ваше .dotenv имя файла.

require('dotenv').config({path:'relative/path/to/your/.env'})
0 голосов
/ 02 октября 2019

укажите ваше имя файла .dotenv в пакете при загрузке приложения

require('dotenv').config({path: './.env'})
...