与Mongoose的本地主机MongoDB连接不工作

1hdlvixo  于 2022-11-03  发布在  Go
关注(0)|答案(2)|浏览(171)

我尝试连接到我的MongoDB localhost,但它就是不连接。发生的事情是,当我转到/admin时,它只是不断加载,我没有收到任何消息,日志中也没有任何内容。我不知道为什么。这是我的路由器文件,使用的连接:

const express = require('express');
const debug = require('debug')('app:adminRouter');
const mongoose = require('mongoose');
const users = require('../data/users.json');

const adminRouter = express.Router();

adminRouter.route('/').get((req, res) => {
    const url = "mongodb://localhost:27017"; // process.env.DBURL
    const dbName = "workplace_incident_reporter";

    (async function mongo(){
        let client;
        try {
            client = await mongoose.connect(url, 
                { useNewUrlParser: true, useUnifiedTopology: true });
            debug('Connected to mongoDB');

            const db = client.db(dbName);

            const response = await db.collection('Users').insertMany(users);
            res.json = response;
        } catch (error){
            debug(error.stack);
        }
    })
});

module.exports = adminRouter;

这是我的MongoDB Compass窗口的图片。这只适用于URL引用:

cclgggtu

cclgggtu1#

我将URL从mongodb://localhost:27017更改为mongodb://127.0.0.1:27017

68bkxrlz

68bkxrlz2#

你的函数mongo不是那样运行的!把它改成这样:

const db_url = 'mongodb://localhost:27017'
const db_main = 'db-main'

const connectDB = mongoose.connect(
  `${db_uri}/${db_main}`,
  {
    useNewUrlParser: true,
  },
  (err) => {
    if (!err) {
      console.log("MongoDB Connection Succeeded.");
    } else {
      console.log("Error in DB connection: " + err);
    }
  }
)

请考虑您可以在server.js文件中调用mongoDb连接一次

相关问题