2012-08-28 3 views
1

connect-session-mongo과 함께 노드 -mongodb- 네이티브 드라이버를 사용하고 있습니다. 나는 연결 세션 - 몽고가 연결 세션 - 몽고의 설정 방법에 오류가 던지는 Mongos와 함께 사용하는 경우 :MongoDB : mongos 프로세스, 노드 -mongodb-native, 연결 세션 mongo

[Error: no open connections] 

나는 연결 세션 - 몽고 코드를 주석 경우는 잘 작동하는 것 같다 . 다른 사람이 sharding과 함께 그 둘을 사용합니까?

복제본 만 있으면 좋았지 만 테스트 인스턴스에서 샤딩을 설정하면 악몽이었습니다.

아이디어를 얻는 방법을 알려주세요. 각각에 대해 두 번째 몽고 프로세스를 실행해야합니까?

답변

1

Node.JS 몽고 드라이버 업데이트 1.1.5에서 수정되었습니다.

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

저는 몇 달 동안 잘 작동합니다. MongoServer 대신 Mongos로 전환했을 때였습니다. –