MongoError:无法建立拓扑功能,因为驱动程序仍在连接Server.capabilities

时间:2015-07-27 08:15:03

标签: node.js mongodb mongoose

我正在尝试通过mongoose.connect连接到mongoDB,我继续收到错误:

5

auth_server.js:

/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

有谁知道导致此问题的原因或解决方法?我花了很多时间研究它,我似乎仍无法找到解决方案。非常感谢你提前。

1 个答案:

答案 0 :(得分:6)

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

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

//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)

})