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

6
当运行我的meanjs项目时,我遇到了“未处理的拒绝MongoError:无法连接到服务器”的问题。之前一切正常,但是当我更新了nodejs 5.11.1、mongodb 3.2.6、“mongoose”^4.4.16和“connect-mongo”^1.1.0后,就出现了这个错误。
在配置文件中的代码如下:

未处理的拒绝MongoError:无法连接到服务器 at Collection.listIndexes (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1750:11) at indexInformation (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1625:25) at Db.indexInformation (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1589:44) at ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1082:8) at Db.ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/db.js:1058:44) at ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1820:13) at Collection.ensureIndex (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/mongodb/lib/collection.js:1808:44) at MongoStore.setAutoRemoveAsync (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/connect-mongo/src/index.js:123:40) at MongoStore.handleNewConnectionAsync (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/connect-mongo/src/index.js:116:18) at MongoStore (/home/shaishab/Project/Open-Source/BS-Commerce/node_modules/connect-mongo/src/index.js:95:26) at module.exports (/home/shaishab/Project/Open-Source/BS-Commerce/config/express.js:101:10) at Object. (/home/shaishab/Project/Open-Source/BS-Commerce/server.js:31:38) at Module._compile (module.js:413:34) at Object.Module._extensions..js (module.js:422: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
        })
}));

有人能帮我吗?

(涉及IT技术,具体问题未知)

你能检查一下 MongoDB 是否正在使用指定的连接字符串运行吗? - Atish
我可以通过Mongo shell访问我的数据库@Astro。 - Shaishab Roy
2个回答

16

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

当更新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

那解决了我的问题 :)


0

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

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})
  }));

希望能有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接