Я использую dotenv для хранения имени и пароля моей базы данных в корне моей папки backend
в файле process.env
, который игнорируется .gitignore
. У меня есть файл db.js
под backend/config
, который пытается использовать process.env
require('dotenv').config()
const mongoose = require("mongoose");
mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.info('MongoDB Connected…')
})
.catch(err => console.info(err))
require("../models/Task");
Но я получаю следующую ошибку
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.
Мой process.env
записывается следующим образом
MONGO_URI = "mongodb+srv://<dbname>:<dbpw>@cluster0.f9k2w.mongodb.net/quotesDB?retryWrites=true&w=majority"
С <dbname>
и <dbpw>
, содержащими имя моей секретной базы данных и пароль.
Почему моя переменная process.env
не определена?
Мой гитхаб
Переименуйте файл process.env
в .env
Это .env
файл, а не process.env
файл. Все остальное выглядит нормально.
Вы упомянули файл
process.env
, если это имя вашего файла, переименуйте его в.env
, а если текущий файл.env
, вы можете попробовать переустановитьdotenv
, надеюсь, это решит вашу проблему.