我从 express 3.x
迁移至express 4.x
我在寻找与新的 session
兼容的 mongo session 存储 时遇到问题中间件。
以前:
express 3.x
有 connect
作为依赖项,它又附带捆绑的 session
中间件。
为了在 mongo 数据库中持久化 session ,事实上的中间件是 connect-mongo
.
世界新秩序:
现在使用 express 4.x
,connect
不再是依赖项。
因此,几乎所有以前捆绑的中间件都被分解成单独的中间件,例如上面列出的 session
。
session
需要一个 store
,但由于 connect-mongo
依赖于 connect
,is 不兼容express 4.x
.
问题:
我找不到关于在迁移到 express 4.x
时要使用的哪个 mongo session 存储的信息。有什么建议吗?
最佳答案
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});
关于node.js - 从 express 3.x 升级到 express 4.x - Mongo session 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23005971/