繁体   English   中英

需要澄清connect-mongo,如何在nodejs中将它用于带有express的会话

[英]connect-mongo clarification needed, how to use it for sessions with express in nodejs

在我的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
     }));
     ...
 });

我的旧方法对我来说似乎更优雅,但实际上并没有用。 而且我对前两个示例中发生的事情以及它们为何如此不同的意义不甚了解。 有人可以解释一下我需要从这两个那里得到什么吗?

这使它起作用

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM