2012-08-28 1 views
1

Я использую драйвер node-mongodb-native с connect-session-mongo. При использовании подключения с сессией Монго с Mongos он выдает ошибку в заданном способе подключения-сессии-Монго:MongoDB: mongos process, node-mongodb-native, connect-session-mongo

[Error: no open connections] 

Это, кажется, работает нормально, если я закомментировать код подключения-сеанса Монго , Кто-нибудь еще использует оба этих метода вместе с sharding?

Все было в порядке с набором реплик, но когда мы настраиваем окутывание на тестовый экземпляр, это был кошмар.

Любые идеи, как заставить их играть хорошо? Должен ли я запускать второй процесс mongos для каждого?

ответ

1

Исправлено в Node.JS Mongo Driver update 1.1.5.

1

Где вы звоните: db.open? У меня такое чувство, что вы не дожидаетесь разрешения db.open до того, как развернете свое приложение. Вы можете обойти это, вызвав app.listen внутри своего обратного вызова db.open. Что-то вроде следующих работ для меня:

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

Я работаю отлично в течение нескольких месяцев. Только когда мы перешли на Mongos вместо MongoServer, он умер. –