【问题标题】:mongoose.connect is not working even tho mongodb is running. Mongoose is not able to connect即使 mongodb 正在运行,mongoose.connect 也无法正常工作。猫鼬无法连接
【发布时间】:2021-11-17 16:54:43
【问题描述】:

我正在尝试使用 mongoose 连接到 MongoDB,但它无法正常工作。

这是我连接到它的示例代码。

const express = require("express");

const app = express();


const mongoose = require('mongoose');

//connecting to MongoDB using mongoose
mongoose.connect('mongodb://localhost:27017/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
    console.log("Not Connected to Database ERROR! ", err);
});

app.get("/", function(req, res){
    res.send("Everything is running properly!");
});

app.listen(3000, function(){
    console.log("Server succesfully started on port 3000!");
});

在执行 nodemon app.js 之前,我在另一个选项卡中输入了 mongod,以便 MongoDB 开始运行。它在端口 27017 上等待连接,因此这意味着 MongoDB 正在运行。

现在出现错误,当我发出命令nodemon app.js

[nodemon] starting `node app.js`
Server succesfully started on port 3000!
Not Connected to Database ERROR!  MongooseServerSelectionError: connect ECONNREFUSED ::1:27017
    at NativeConnection.Connection.openUri (F:\Web Projects\Image_Site\node_modules\mongoose\lib\connection.js:797:32)
    at F:\Web Projects\Image_Site\node_modules\mongoose\lib\index.js:332:10
    at F:\Web Projects\Image_Site\node_modules\mongoose\lib\helpers\promiseOrCallback.js:32:5
    at new Promise (<anonymous>)
    at promiseOrCallback (F:\Web Projects\Image_Site\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:10)
    at Mongoose._promiseOrCallback (F:\Web Projects\Image_Site\node_modules\mongoose\lib\index.js:1153:10)
    at Mongoose.connect (F:\Web Projects\Image_Site\node_modules\mongoose\lib\index.js:331:20)
    at Object.<anonymous> (F:\Web Projects\Image_Site\app.js:13:10)
    at Module._compile (node:internal/modules/cjs/loader:1095:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10) {
  reason: TopologyDescription {
    type: 'Unknown',
    servers: Map(1) { 'localhost:27017' => [ServerDescription] },
    stale: false,
    compatible: true,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    logicalSessionTimeoutMinutes: undefined
  }
}

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    终于解决了。通过mongod --ipv6启用Ipv6解决了这个问题

    感谢在 StackOverflow 上找到的答案。 https://stackoverflow.com/a/69857909/16967940

    【讨论】:

      【解决方案2】:

      你好像没有数据库 testdb 。

      【讨论】:

      • 如果不存在,那么它将创建一个具有该名称的新数据库。无论如何,它是通过将 MongoDB 运行为 mongod --ipv6 来解决的,我不知道为什么我需要明确地写 --ipv6 因为在我的旧电脑中我从未遇到过这个问题。
      猜你喜欢
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2021-12-09
      • 2019-11-10
      • 1970-01-01
      • 2019-03-15
      • 2017-09-22
      相关资源
      最近更新 更多