【问题标题】:MongoDB: mongos process, node-mongodb-native, connect-session-mongoMongoDB:mongos 进程、node-mongodb-native、connect-session-mongo
【发布时间】:2012-09-26 06:23:43
【问题描述】:

我正在使用带有connect-session-mongonode-mongodb-native 驱动程序。当我在 Mongos 中使用 connect-session-mongo 时,它会在 connect-session-mongo 的 set 方法中引发错误:

[Error: no open connections]

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

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

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

【问题讨论】:

    标签: node.js mongodb connect sharding


    【解决方案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);
    })
    

    【讨论】:

    • 我是,它运行了好几个月。只是当我们切换到 Mongos 而不是 MongoServer 时它就死了。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      相关资源
      最近更新 更多