我正在从express 3.x
迁移到express 4.x
我在查找与<{3}}新中间件配合使用的 mongo会话商店时遇到问题。
此前:
express 3.x
已将session
作为依赖项,而后者又带有捆绑的connect
中间件。
为了在mongo数据库中持久化会话,事实上的中间件是session
。
新世界秩序:
现在使用express 4.x
,connect
不再是依赖项。
因此,几乎所有以前捆绑的中间件都被分解为单独的中间件,例如上面列出的session
。
session
需要store
,但由于connect-mongo
取决于connect
,因此与express 4.x
不兼容。
问题:
我无法找到迁移到express 4.x
时要使用的哪个mongo会话商店的信息。有什么建议吗?
答案 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});