的NodeJS。 我应该使用什么库来存储在MongoDB中的会话

我发现在MongoDB中有三个会话存储库: connect-mongodbconnect-mongoconnect-session-mongo

哪个最好?

编辑:所以,如果我将使用连接mongodb我必须做两个数据库连接。 首先为会议商店:

var connect = require('connect') , Db = require('mongodb').Db , Server = require('mongodb').Server , server_config = new Server('localhost', 27017, {auto_reconnect: true, native_parser: true}) , db = new Db('test', server_config, {}) , mongoStore = require('connect-mongodb'); connect.createServer( connect.bodyParser(), connect.cookieParser(), connect.session({ cookie: {maxAge: 60000 * 20} // 20 minutes , secret: 'foo' , store: new mongoStore({db: db}) }) ); 

其次,我的mongoose的关系:

 var mongoose = require('mongoose'); db = mongoose.connect('mongodb://localhost/test'); .... 

这是如此吗?

https://github.com/masylum/connect-mongodb在Connect的第三方中间件 (会话存储)页面上列出,它拥有最多的关注者(111),并且正在更新(最近更新~8小时前),所以如果我是你,我可能会选那一个。

编辑:

关于你的第二个问题,如何使用connect-mongodb和Mongoose,这里有一个例子:

 var connect= require('connect'), mongoose = require('mongoose'), mongoStore = require('connect-mongodb'), my_db = "mongodb://localhost/test", db; connect.createServer( ... connect.session({ store: mongoStore(my_db, secret: 'topsecret' })); ... ); db = mongoose.connect(my_db); 

Nodepad是一个真正的应用程序,使用Express,connect-mongodb和Mongoose,你可以在这里检查主应用程序文件: https : //github.com/alexyoung/nodepad/blob/master/app.js

Connect-mongodb会自动为您build立连接。 您传递的是数据库名称的string,也可以select是主机(本地主机是默认的)。 以下是我们如何使用它。

 app.use(express.session({ secret: "x2kjh2323hjhjk32hjk23uhi23", store: new MongoStore({host: "200.11.11.11", db: 'sessions'}), cookie: {maxAge: 604800000} })) 

从API文档 :不幸的是从版本1. *我不能这样做。 此版本与0. *版本不兼容。 现在您必须通过一个mongodb连接或服务器configuration。 在更新时,我build议删除当前的会话收集数据