1

我将node-mongodb-native驱动程序与connect-session-mongo一起使用。当我将 connect-session-mongo 与 Mongos 一起使用时,它会在 connect-session-mongo 的 set 方法中引发错误:

[Error: no open connections]

如果我注释掉 connect-session-mongo 代码,它似乎工作得很好。还有其他人将这两者与分片一起使用吗?

仅使用副本集就可以了,但是当我们在测试实例上设置分片时,这简直就是一场噩梦。

任何想法如何让他们玩得很好?我应该为每个运行第二个 mongos 进程吗?

4

2 回答 2

1

你在哪里调用 db.open?我有一种感觉,在启动您的应用程序之前,您不会等待 db.open 解决。您可以通过在 db.open 回调中调用 app.listen 来解决此问题。以下内容对我有用:

var app = require('express').createServer(),
    mongo = require('mongodb'),
    db = new mongo.Db('dbname', new mongo.Server('localhost', 27017, { autoreconnect: true })),
    MongoSessionStore = require('connect-mongodb');

app.configure(function() {
    // ...
    app.use(express.session({ secret: "supersecret", store: new MongoSessionStore({url: 'localhost'}) }));
    // ...
});

app.get('/', route.index);
// etc...

db.open(function(err){
    if(err) throw err;

    app.listen(3000);
})
于 2012-08-29T02:10:42.540 回答
1

在 Node.JS Mongo 驱动程序更新 1.1.5 中修复。

于 2012-09-25T22:23:43.743 回答