从快递3.x升级到快递4.x - Mongo会话商店

时间:2014-04-11 07:17:56

标签: node.js mongodb express connect

我正在从express 3.x迁移到express 4.x

我在查找与<{3}}新中间件配合使用的 mongo会话商店时遇到问题。

此前:

express 3.x已将session作为依赖项,而后者又带有捆绑的connect中间件。

为了在mongo数据库中持久化会话,事实上的中间件是session

新世界秩序:

现在使用express 4.xconnect不再是依赖项。

因此,几乎所有以前捆绑的中间件都被分解为单独的中间件,例如上面列出的session

session需要store,但由于connect-mongo取决于connect,因此与express 4.x不兼容。

问题:

我无法找到迁移到express 4.x时要使用的哪个mongo会话商店的信息。有什么建议吗?

1 个答案:

答案 0 :(得分:14)

connect-mongo仍可在express 4.x中使用,但是,您现在传递session代替express

Express 3.x:

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

Express 4.x:

var session = require('express-session');
var mongoStore = require('connect-mongo')(session); // note parameter = session

<强> NPM:

不幸的是,在撰写本文时,最新版本的connect-mongo尚未部署到npm。

编辑:最新版本的connect-mongo已部署到npm

您可以直接从github

下载最新版本

或解决方法是创建临时对象:

{
    session: session
}

并将其传递给mongo-connect

var mongoStore = require('connect-mongo')({session: session});