我在MongoDB中找到了三个会话库: connect-mongodb , connect-mongo , connect-session-mongo < / p>
哪个最好?
编辑:因此,如果我将使用connect-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})
})
);
我的猫鼬连接的第二个:
var mongoose = require('mongoose');
db = mongoose.connect('mongodb://localhost/test');
....
是这样吗?
答案 0 :(得分:2)
Connect-mongodb会自动为您进行连接。您传入的字符串是数据库名称,也可以是主机(默认情况下为localhost)。以下是我们如何使用它。
app.use(express.session({
secret: "x2kjh2323hjhjk32hjk23uhi23",
store: new MongoStore({host: "200.11.11.11", db: 'sessions'}),
cookie: {maxAge: 604800000}
}))
答案 1 :(得分:1)
https://github.com/masylum/connect-mongodb列在Connect的3rd party middleware(会话商店)页面上,它拥有最多的关注者(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
答案 2 :(得分:0)
:遗憾的是从版本1开始。*我无法做到这一点。此版本与0. *版本不兼容。现在您必须传递mongodb连接或服务器配置。在更新时,我建议删除您当前的会话收集数据