1

connect-session-mongoでnode-mongodb-nativeドライバーを使用しています。Mongos で connect-session-mongo を使用すると、connect-session-mongo の set メソッドでエラーがスローされます。

[Error: no open connections]

connect-session-mongo コードをコメントアウトすると、問題なく動作するようです。シャーディングと一緒に両方を使用している人はいますか?

レプリカ セットのみでは問題ありませんでしたが、テスト インスタンスでシャーディングをセットアップすると悪夢のようになりました。

彼らをうまくプレイさせる方法はありますか?それぞれに対して 2 番目の 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 に答える