2014-03-04 24 views
0

在我的node.js應用程序中,我試圖讓會話數據存儲在mongoDB數據庫中。connect-mongo澄清需要,如何將它用於在nodejs中進行快速會話

但是connect-mongo的使用對我來說有點令人費解,我希望有人能向我解釋正確的用法,以及下面提到的所有其他用法。

本教程http://blog.modulus.io/nodejs-and-express-sessions告訴它使用這樣的

var express = require('express'); 
var app = express(); 
var MongoStore = require('connect-mongo')(express); 

app.use(express.cookieParser()); 
app.use(express.session({ 
    store: new MongoStore({ 
    url: 'mongodb://root:[email protected]:27017/3xam9l3' 
    }), 
    secret: '1234567890QWERTY' 
})); 

//... 

但主要的插件網站使用它像這樣

var express = require('express'); 
var MongoStore = require('connect-mongo')(express); 

app.use(express.session({ 
    secret: settings.cookie_secret, 
    store: new MongoStore({ 
     db: settings.db 
    }) 
    })); 

它使用store不同..

不過,我過去曾經使用過這種方式,儘管現在我無法使用它,但我仍然使用它d它有點像這樣

var SessionStore = require('connect-mongo')(express); 
// not sure exactly what was assigned, but this same variable name was used below.. 

app.configure(function() { 
    ... 
    app.use(express.session({ 
     secret: secretSauce, 
     store: SessionStore, // < ..here 
    })); 
    ... 
}); 

我以前的方式似乎對我更優雅,但它不工作。我無法理解前兩個例子中發生了什麼,以及它們爲什麼如此不同。有人能解釋我需要從這兩個人那裏得到什麼?

回答

1

這得到了它的工作

var MongoStore = require('connect-mongo')(express); 
var SessionStore = new MongoStore({ 
    db: 'SessionStore' 
}); 

app.use(express.session({ 
    secret: secretSauce, 
    store: SessionStore, 
}));