未处理的拒绝MongoError:无法连接到MongoDB中的服务器

Unhandled rejection MongoError: cannot connect to server in MongoDB

本文关键字:MongoDB 服务器 连接 拒绝 MongoError 未处理      更新时间:2023-09-26

我在运行meanjs项目时得到了Unhandled rejection MongoError: cannot connect to server

以前运行良好,但当更新nodejs 5.11.1mongodb 3.2.6"mongoose": "^4.4.16""connect-mongo": "^1.1.0",时,出现此错误。

未处理的拒绝MongoError:无法连接到服务器位于Collection.listIndexes(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/mongodb/lib/Collection.js:1750:11)在indexInformation(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/mongodb/lib/db.js:1625:25)在Db.indexInformation(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/mongodb/lib/Db.js:1589:44)在ensureIndex(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/mongodb/lib/db.js:1082:8)在Db.ensureIndex(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/mongodb/lib/Db.js:1058:44)在ensureIndex(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/mongodb/lib/collection.js:1820:183)在Collection.insureIndex(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/mongodb/lib/Collection.js:1808:44)位于MongoStore.setAutoRemoveAsync(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/connect-mongo/src/index.js:123:40)在MongoStore.handleNewConnectionAsync(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/connect-mongo/src/index.js:116:18)在MongoStore(/home/shaishab/Project/Open-Source/BS Commerce/node_modules/connect-mongo/src/index.js:95:26)在module.exports(/home/shaishab/Project/Open-Source/BS Commerce/config/express.js:101:10)在对象处。(/home/shaishab/Project/Open-Source/BS Commerce/server.js:38)在模块中_compile(模块.js:413:34)在Object.Module_extensions.js(Module.js:42:10)

配置文件中的代码

var session = require('express-session'),
    MongoStore = require('connect-mongo')(session),
    mongoose = require('mongoose');
var db = mongoose.connect('dbUrl');
app.use(session({
        saveUninitialized: true,
        resave: true,
        secret: config.sessionSecret,
        store: new MongoStore({
            db: db.connection.db,
            collection: config.sessionCollection
        })
}));

有人能帮我吗?

终于找到了发生错误的地方我发布这个答案是因为它可能会帮助其他人。

更新mongooseconnect-mongo版本时出现问题。

需要更新:

MongoStore = require('connect-mongo')(session)

app.use(session({
        saveUninitialized: true,
        resave: true,
        secret: config.sessionSecret,
        store: new MongoStore({
            mongooseConnection: db.connection,
            collection: config.sessionCollection
        })
    }));

主要问题是MongoStore({db: db.connection.db而不是使用

db: db.connection.db

现在使用

mongooseConnection: db.connection

解决了我的问题:)

由于我没有db variable,我的解决方案是:

var mongoStore = require('connect-mongo')(session);
var mongoose = require('mongoose');
const connection = mongoose.createConnection('mongodb://localhost/chester');
app.use(session({
    secret: config.secrets.session,
    resave: true,
    saveUninitialized: true,
    store: new mongoStore({mongooseConnection: connection})
  }));

希望它能帮助