"MongooseError ('Параметр` uri` для `openUri ()` должен быть' + "появляется, даже если переменная является строкой - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу просто подключить мою БД через мангуста к моему локальному хосту. Однако я получаю эту ошибку:

C:\Users\przyb\Desktop\JWT\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.

Это сбивает меня с толку, поскольку передаваемая переменная определенно является строкой. Вот мое дерево файлов:

JWT
|
model --- User.js
node_modules
public
routes --- .env.js, auth.js
views
index.js
package.json
package-lock.json

index.js

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const dotenv = require("dotenv").config();

//Imported routes
const authRoute = require('./routes/auth');

//Connect to db
mongoose.connect(
    process.env.DB_CONNECT,
    {useNewUrlParser:true},
    () => console.log("connected to db")
);

//Middleware
app.use(express.json());

//Route Middlewares
app.use('/api/User', authRoute);

app.listen(3000, () => console.log("All good"));

.env.js

DB_CONNECT = "mongodb+srv://USERNAME:PASSWORD@cluster0-wu2im.mongodb.net/test?retryWrites=true&w=majority";

Stackoverflow сказал, что у меня слишком много кода для этого вопросапоэтому я не могу показать вам auth.js & User.js.

1 Ответ

0 голосов
/ 10 ноября 2019

Эта проблема была решена с помощью:

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