connect-mongo澄清需要,如何在nodejs中使用express进行会话

时间:2014-03-04 01:06:53

标签: node.js mongodb session mongoose connect

在我的node.js应用程序中,我正在尝试将会话数据存储在mongoDB数据库中。

但是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:myPassword@mongo.onmodulus.net: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 ..

但是,我过去曾经使用过它,虽然我现在无法使用它,但我有点像这样使用

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 个答案:

答案 0 :(得分:1)

这让它运转了

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

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