2013-04-01 3 views
4

세션 저장 작업을 위해 Appfog에서 MongoDB에 연결하는 데 큰 어려움이 있습니다. 현재 PassportJS와 Mongoose를 사용하여 노드 익스프레스를 실행 중입니다. 나는 수많은 예제와 튜토리얼을 온라인으로 따라 왔고 몇 가지 ODM 매퍼를 시도했다.NodeJS, ExpressJS 및 PassportJS Cloud9에서 세션이 Appfog Mongo에 연결 중

필자는 고백해야하며, 어떤 종류의 연결도 혼자 내버려 두지 않으려 고 노력했다.

나는 herehere의 SO 예제를 성공하지 못했습니다. 매번 나는 다음과 같은 코드로 연결을 시도 : -

var env = process.env.NODE_ENV || 'development', 
    config = require('./config/config')[env], 
    auth = require('./config/middlewares/authorization'), 
    mongoose = require('mongoose'); 

// Bootstrap db connection 
mongoose.connect(config.db); 

내가 얻을 : -

Error: Error setting TTL index on collection : sessions 
    at module.exports._get_collection (/var/lib/stickshift/514a22705973cafc85000110/app-root/data/447240/node_modules/connect-mongo/lib/connect-mongo.js:137:23) 
    at Db.ensureIndex (/var/lib/stickshift/514a22705973cafc85000110/app-root/data/447240/node_modules/mongodb/lib/mongodb/db.js:1227:28) 
    at Db.indexInformation (/var/lib/stickshift/514a22705973cafc85000110/app-root/data/447240/node_modules/mongodb/lib/mongodb/db.js:1371:30) 

사람이 모든 가능한 방향을 제공하거나 작업을하시기 바랍니다 얻을 도와 드릴까요?

해결책을 돕기 위해 코드의 추가 덤프가 필요한지 물어보십시오.

감사합니다.

+0

나는 똑같은 문제가 있습니다 ... – kumikoda

답변

1

나는 동일한 문제가 있었는데 부분적으로 연결된 db를 사용하여 express.session()을 초기화했기 때문에이 문제가 발생했습니다.

mongoose.connect(dbPath); 
... 
app.configure(function() { 
    ... 
    app.use(express.session({ 
    secret : secret, 
    store: new MongoStore({ db: mongoose.connection.db }) 
    })); 
    ... 
}); 

'새 MongoStore() 호출이 mongoose.connect (전에 발생) 그래서 설정하지 아직 연결된 DB를 사용하여 완료 :

내가 처음 한 것입니다 '세션'의 TTL로 실패합니다. "새로운 MongoStore ({url : dbPath})"로 전환했는데 문제가 해결되었지만 아마도 2 개의 다른 db 연결이 생깁니다.

-1

AppFog에 연결할 수 없습니다. 불행하게도 AppFog 자체는 도움이되지 않았습니다. 따라서 MongoHQ 인스턴스를 생성하고 아무런 문제없이 연결할 수 있습니다.

+0

이것은 실제로 대답이 아닙니다. – chovy

+0

@ Shovy 's로 변경했습니다. 도움이 될 것 같았습니다. – dooburt

0

동일한 오류가 발생했습니다. 코드를 사용하여 this의 질문을 사용하면 오류 정보가 더 빠져 나옵니다. 그것은 문제가 실제로 연결 문자열에서 내 사용자 ID 및 암호임을 깨닫는데 도움이되었습니다.

관련 문제