首页 > 解决方案 > 猫鼬无法连接到数据库

问题描述

您好,在我的 nodejs 应用程序中,我正在使用 mongo db 并尝试使用 mongoose 连接到数据库。它正在工作,即使我从未接触过连接部分,它也会突然停止。

这是用于连接的代码

    if (!process.env.MONGODB) {
      throw Error("Mongodb url is not defined.");
    }
    mongoose.set("useCreateIndex", true);
    mongoose.Promise = bluebird;
    mongoose.set("debug", false);

    await mongoose.createConnection(process.env.MONGODB, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useFindAndModify: false,
    });
    // db = mongoose.connection;
    // db.on("connect", () => console.log("database connected"));
    // db.on("error", () => console.log("error happened!"));

    return "Succesfully Connected to the Mongodb Database at URL: "+process.env.MONGODB;
  } catch (e) {
    e.type = "initMongoDb";
    throw e;
  }//*/

这是我得到的堆栈


C:\<my path>\node_modules\mongodb\lib\mongo_client.js:421
          throw err
          ^
Error [MongoError]: failed to connect to server [<my server>:27017] on first connect [Error: read ECONNRESET
    at TLSWrap.onStreamRead (internal/stream_base_commons.js:200:27) {
  name: 'MongoError',
  message: 'read ECONNRESET'
}]
    at Pool.<anonymous> (C:\<my path>\node_modules\mongodb-core\lib\topologies\server.js:336:35)
    at Pool.emit (events.js:223:5)
    at Pool.EventEmitter.emit (domain.js:475:20)
    at Connection.<anonymous> (C:<my path>\node_modules\mongodb-core\lib\connection\pool.js:280:12)
    at Object.onceWrapper (events.js:313:26)
    at Connection.emit (events.js:223:5)
    at Connection.EventEmitter.emit (domain.js:475:20)
    at TLSSocket.<anonymous> (C:\<my path>\node_modules\mongodb-core\lib\connection\connection.js:189:49)
    at Object.onceWrapper (events.js:313:26)
    at TLSSocket.emit (events.js:223:5)
    at TLSSocket.EventEmitter.emit (domain.js:475:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:81:21) {
  name: 'MongoError',
  message: 'failed to connect to server [<my server>:27017] on first connect [Error: read ECONNRESET\n' +
    '    at TLSWrap.onStreamRead (internal/stream_base_commons.js:200:27) {\n' +
    "  name: 'MongoError',\n" +
    "  message: 'read ECONNRESET'\n" +
    '}]'
}

我的 IP 已列入白名单且连接字符串正确 我该怎么办?

标签: node.jsmongodbmongoose

解决方案


推荐阅读