NodeJS:Monk的会话存储

时间:2015-01-22 13:21:02

标签: node.js mongodb session monk

我正在尝试在MongoDB上使用Mongoose的MeanJS。鉴于我的项目需求,我宁愿使用Monk。我无法弄清楚会话商店背后的魔力。

var MongoStore = require('connect-mongo')(express);
var db = mongoose.connect("localhost:...", function(err){});

app.use(session({
    secret: 'foo',
    store: new MongoStore({db: db.connection.db})
}));

如何使用Monk在我的应用程序中存储会话,这将允许其他模块访问它?

1 个答案:

答案 0 :(得分:0)

您可以将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正在使用native driver's connection string创建与db的新连接。我测试了这个,而不需要官方的mongo司机或Monk。

您只需要运行mongod实例(在本例中为默认端口27017)。

您可以在connect-mongo readme

中引用此方法

对于Express 4.x(我使用的),代码类似,但您必须单独安装并需要express-session模块,因为它不再与express一起打包。另外,最新版本的快速会话需要明确的两个选项如下所示。

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'})
}));