Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDB:mongos进程、节点MongoDB本机、连接会话mongo_Node.js_Mongodb_Connect_Sharding - Fatal编程技术网

Node.js MongoDB:mongos进程、节点MongoDB本机、连接会话mongo

Node.js MongoDB:mongos进程、节点MongoDB本机、连接会话mongo,node.js,mongodb,connect,sharding,Node.js,Mongodb,Connect,Sharding,我正在使用节点mongodb本机驱动程序。当我将connect session mongo与Mongos一起使用时,它在connect session mongo的set方法中抛出一个错误: [Error: no open connections] 如果我注释掉连接会话mongo代码,它似乎工作得很好。还有人同时使用这两个吗 只使用副本集是可以的,但当我们在测试实例上设置切分时,这是一场噩梦 有什么办法让他们玩得开心吗?我应该为每个数据库运行第二个mongos进程吗?您在哪里调用db.open

我正在使用节点mongodb本机驱动程序。当我将connect session mongo与Mongos一起使用时,它在connect session mongo的set方法中抛出一个错误:

[Error: no open connections]
如果我注释掉连接会话mongo代码,它似乎工作得很好。还有人同时使用这两个吗

只使用副本集是可以的,但当我们在测试实例上设置切分时,这是一场噩梦


有什么办法让他们玩得开心吗?我应该为每个数据库运行第二个mongos进程吗?

您在哪里调用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);
})

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

是的,几个月来工作正常。就在我们切换到Mongos而不是MongoServer时,它死掉了。