2011-12-15 56 views
2

我发现会议在MongoDB中存储三个库:连接-MongoDB的连接 - 蒙戈连接会话 - 蒙戈nodejs。什么库我应该使用会话存储在MongoDB中

是哪个最好?

编辑:所以,如果我要使用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

我已经编辑了我的答案来回答你的第二个问题,查看它。 – alessioalex 2011-12-16 08:43:05

回答

1

https://github.com/masylum/connect-mongodb在Connect的3rd party middleware(会话商店)页面上列出,它拥有最多的关注者(111)并且它正在更新(最近更新~8小时前),所以如果我是你,我可能会选择那一个。

编辑:

关于你的第二个问题,如何使用连接的MongoDB与猫鼬一起,这里有一个例子:

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是使用快递一个真正的应用程序,连接-的MongoDB和猫鼬,你可以在这里签出主应用程序文件:https://github.com/alexyoung/nodepad/blob/master/app.js

+5

实际上,**截至2013年2月24日,connect-mongo在这些指标中的每一个指标上都会连接mongodb。它还有20多颗明星和3个叉子,也列在第三方中间件页面上,并且正在更加积极地维护(connect-mongodb自述文件目前以“Maintainer Needed”标题开头)。 另外,它们都可以从Mongoose对象获取它们的连接设置。 – 2013-02-25 07:12:46

2

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

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

什么是hosts.mongo? – Erik 2011-12-15 20:13:34

0

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

相关问题