Connect-mongo替代Express 4

Ash*_*hoo 5 session mongodb node.js express

我希望在我的Express应用程序中实现cookiestore,我遵循了这个问题

Express + MongoDB的最佳会话存储中间件

https://github.com/kcbanner/connect-mongo

对于我的Express 3.x项目,但对于Express 4,connect不推荐使用中间件.

哪个是connect-mongo的合适替代品?

Mat*_*tis 8

中间件已从核心中提取出来并移动了各个模块.这会改变您设置应用程序的方式,但您可以选择使用与以前相同的中间件.解释如何从3.x迁移到4.x 的概述列出了可用作Connect中间件替换的模块.

在显式安装模块时,语法会略有不同,例如express-session,app.use修改语句以反映这一点.但是,传递给这些模块的选项与Connect中间件的选项相同......因此您可以将connect-mongo详细信息传递给express-session并继续使用.

因此,除非您的原始问题中存在另一个问题,否则您无需更改......如果您拥有大型已建立的应用程序,则可能存在其他问题.但是,如果您正在学习本教程,那么您应该在这个过程中尽早,这不会是一个主要问题.

编辑:看起来在github页面上也有关于Express 4的讨论connect-mongo.有更多的例子说明如何将这个模块用于Express的新版本......

编辑2:在github页面上引用了几次的代码如下所示:

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

app.use(session({
    secret: 'youshouldputyourownsecrethere',
    store: new MongoStore({
        db              : mongoose.connection.db,
    })
}));
Run Code Online (Sandbox Code Playgroud)

  • 修复是(截至15分钟前他发布NPM修复程序时)​​:**切换到[connect-mongostore](https://www.npmjs.org/package/connect-mongostore)**.他们的团队正在为[Express 4.0支持]提供更多动力(https://github.com/diversario/connect-mongostore/pull/8). (2认同)