2014-02-12 47 views
0

我在express開始申請時發生了Error setting TTL錯誤。也許問題是因爲我通過不同的連接使用會話和數據庫操作相同的數據庫。如何設置貓鼬和connect-mongo?

所以有需要connect-mongomongoose的特定序列,需要得到尊重,如果我想我存儲在MongoDB中會議通過connect-mongo中間件和使用蒙戈作爲我的數據庫我的應用程序的具體數據?

目前我的程序是這樣的:

App.app.use(express.session({ 
store: new MongoStore({ 
    db: settings.cookie.db, 
    host: settings.cookie.host, 
    port: settings.cookie.port 
}), 
    secret: settings.cookie.secret 
})) 

後來我設置啓動蒙戈的連接:

function connect(connectionString) { 
    mongoose.connect(connectionString) 

    var db = mongoose.connection 
    db.on('error', console.error.bind(console, 'connection error')) 
    db.once('open', function callbck() { 
     console.log('Mongoose connected at: ', connectionString) 
     }) 
    } 

有沒有錯誤日誌除了

而且我怎麼撕當我關閉我的應用程序(從命令行讓我們說)時,適當地連接mongo連接?對於這個問題,我認爲我的答案是here

回答

3

首先,我創建了一個sessionStore模塊

var mongoose = require('mongoose'), 
express = require('express'), 
MongoStore = require('connect-mongo')(express), 
sessionStore = new MongoStore({mongoose_connection: mongoose.connection}); 
module.exports = sessionStore; 

,我已經將其納入應用

sessionStore = require('libs/sessionStore'); 

而且finaly

app.use(express.session({ 
    secret: config.get('session:secret'), 
    key: config.get('session:key'), 
    cookie: config.get('session:cookie'), 
    store: sessionStore 
})); 

這是配置

"session": { 
    "secret": "secret", 
    "key": "connect.sid", 
    "cookie": { 
     "path": "/", 
     "httpOnly": true, 
     "maxAge": null 
    } 
},