我正在使用带有connect-session-mongo的 node-mongodb-native 驱动程序。当我使用connect-session-mongo与Mongos时,它会在connect-session-mongo的set方法中抛出一个错误:
[Error: no open connections]
如果我注释掉connect-session-mongo代码,似乎工作正常。是否有其他人同时使用sharding?
仅使用replica-set很好,但是当我们在测试实例上设置分片时,它一直是个噩梦。
任何想法如何让他们玩得很好?我应该为每个人运行第二个mongos进程吗?
答案 0 :(得分: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);
})
答案 1 :(得分:1)
修正了Node.JS Mongo驱动程序更新1.1.5。