MongoError:由于驱动程序仍在连接Server.capabilities,因此无法build立拓扑function

我试图通过mongoose.connect连接到mongoDB,我继续得到错误:

/Users/Documents/Business/01000100/node_modules/connect-mongo/lib/connect-mongo.js:133 throw err; ^ MongoError: cannot establish topology capabilities as driver is still in process of connecting at Server.capabilities 

auth_server.js:

  var express = require('express') var body_parser = require('body-parser') var cookie_parser = require('cookie-parser') var express_session = require('express-session') var mongo_store = require('connect-mongo')({session:express_session}) var mongoose = require('mongoose') var morgan = require('morgan') var port = 8080 //MODELS require('./models/user_model.js') //CONFIG mongoose.connect('mongodb://localhost/db') var app = express() //VIEW ENGINE app.engine('.html', require('ejs').__express) app.set('views', __dirname + '/views') app.set('view engine', 'html') //MIDDLEWARE app.use(morgan('dev'))//logging requests app.use(body_parser.urlencoded({extended: true})); app.use(cookie_parser()) app.use(express_session({ secret: '2!H$,Br2&1XW74zpd897ytf lbph=-0987654edfvbn5Q4AQ0]k7XX2Plh915ZV2)0)2DvHK}4KA"^6J!TY;x4z04', cookie: {maxAge: 60 * 60 * 1000}, store: new mongo_store({ db: mongoose.connection.db, collection: 'sessions' }), resave: false, saveUninitialized: false })) //ROUTES require('./routes')(app) //START app.listen(port) console.log('Santa is listening on ' + port) 

有谁知道是什么原因导致这个问题或如何解决它? 我在研究上花了一大堆时间,而且似乎还找不到解决scheme。 非常感谢你提前。

有些东西,会话存储信息可能不会直接使用mongoose方法,而是在连接build立之前尝试访问数据库。 mongoose方法本身将其隐藏起来,并将操作“排队”,直到实际build立连接。

将所有的应用程序启动包装在“连接”事件中,以确保连接已经build立:

 //CONFIG mongoose.connect('mongodb://localhost/db'); // Does not wait for connection here var app = express(); mongoose.connection.on("connect",function(err) { // But this waits for connection // All Setup here - But especially this app.use(express_session({ secret: '2!H$,Br2&1XW74zpd897ytf lbph=-0987654edfvbn5Q4AQ0]k7XX2Plh915ZV2)0)2DvHK}4KA"^6J!TY;x4z04', cookie: {maxAge: 60 * 60 * 1000}, store: new mongo_store({ db: mongoose.connection.db, collection: 'sessions' }), resave: false, saveUninitialized: false })) //START app.listen(port) console.log('Santa is listening on ' + port) })