您可以将 Monk 用于您的其他 mongoDB 行为,并且仍然使用 connect-mongo 来存储会话。
在 Express 3.x 中(您似乎正在根据您的代码使用它):
var MongoStore = require('connect-mongo')(express),
app.use(session({
secret: 'foo',
store: new MongoStore({url: 'mongodb://localhost:27017/test'})
}));
在这种情况下,Monk 实际上并没有被使用,因为 MongoStore 正在使用本机驱动程序的连接字符串创建到数据库的新连接。我在不需要官方 mongo 驱动程序或 Monk 的情况下对此进行了测试。
您只需要运行一个 mongod 实例(在本例中为默认端口 27017)。
您可以在connect-mongo 自述文件中引用此方法
对于 Express 4.x(我使用),代码类似,但您必须express-session
单独安装和 require 模块,因为它不再与 express 打包。还有两个选项是最新版本的 express-session 需要明确的,如下所示。
var session = require('express-session'),
MongoStore = require('connect-mongo')(session);
app.use(session({
secret: 'foo',
saveUninitialized: false,
resave: false,
store: new MongoStore({url: 'mongodb://localhost:27017/test'})
}));