在connect-mongodb模块中,我们可以像这样在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})
})
);在上面的例子中,我们必须使用原生mongodb的东西。在我的nodejs项目中,我使用了mongoose 2.4.1,那么应该如何重写代码来使用mongoose呢?
谢谢!
发布于 2012-02-12 10:32:12
如果您使用的是mongoose,而您使用的是mongoose.connect,则可以在以下位置获得连接
mongoose.connection因此,要配置会话存储,可以使用以下形式
var mongoose = require('mongoose'),
mongoStore = require('connect-mongodb');
...
mongoose.connect(host,databaseName,port);
// mongoose.connect('mongodb://host:port/databaseName');
...
connect.session({
secret: 'your secret key',
cookie: { maxAge : 60*15*1000}, // 15 minutes, in milliseconds
store: new mongoStore( { db : mongoose.connection.db })
})发布于 2011-12-12 01:01:57
你没有理由这样做,只需使用connect-mongodb的会话,它实现了所有的'Session Store‘Express功能。对于其他需要数据库存储的东西,请使用Mongoose,但将会话留给connect-mongodb。
这里有一个真正的例子:https://github.com/alexyoung/nodepad
发布于 2011-12-12 23:13:59
Mongoose应该以某种方式暴露这种联系。
https://stackoverflow.com/questions/8465739
复制相似问题