Expressjs 4中的Mongodb会话商店

时间:2014-04-19 11:34:26

标签: mongodb session express

在快递3中,我使用connect-mongo作为会话商店。

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

但是在我转到表达4之后它没有用。我收到了这个错误:

Error: Most middleware (like session) is no longer bundled with Express and must be       installed separately. Please see https://github.com/senchalabs/connect#middleware.

我看到连接已经从快递4中删除了。我怎样才能继续使用这个或者是否有任何好的库我可以用于快递4.谢谢。

4 个答案:

答案 0 :(得分:16)

您现在需要单独安装快速会话程​​序包。它可以在https://github.com/expressjs/session

找到

使用以下命令启动并运行:

npm install --save express-session cookie-parser

然后在你的server.js文件中:

var express = require('express'),
    cookieParser = require('cookie-parser'),
    expressSession = require('express-session'),
    MongoStore = require('connect-mongo')(expressSession),
    app = express();

app.use(cookieParser());
app.use(expressSession({
     secret: 'secret',
     store: new MongoStore(),
     resave: false,
     saveUninitialized: true
}));

享受

答案 1 :(得分:1)

您仍然可以在快递4中使用connect-mongo。来自自述文件的示例:

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

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

答案 2 :(得分:0)

尝试“新”会话中间件https://github.com/senchalabs/connect#middleware

答案 3 :(得分:-1)

检查此模块和示例代码。

https://www.npmjs.org/package/express-sessions

var mongoose = require('mongoose');

mongoose.connect();

app.use(express.session({
    secret: 'a4f8071f-c873-4447-8ee2',
    cookie: { maxAge: 2628000000 },
    store: new (require('express-sessions'))({
        storage: 'mongodb',
        instance: mongoose, // optional
        host: 'localhost', // optional
        port: 27017, // optional
        db: 'test', // optional
        collection: 'sessions', // optional
        expire: 86400 // optional
    })
}));