首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodejs会话存储

nodejs会话存储
EN

Stack Overflow用户
提问于 2011-12-12 00:55:09
回答 4查看 2.8K关注 0票数 0

在connect-mongodb模块中,我们可以像这样在MongoDB中存储会话:

代码语言:javascript
复制
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呢?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2012-02-12 10:32:12

如果您使用的是mongoose,而您使用的是mongoose.connect,则可以在以下位置获得连接

代码语言:javascript
复制
mongoose.connection

因此,要配置会话存储,可以使用以下形式

代码语言:javascript
复制
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 })
})
票数 1
EN

Stack Overflow用户

发布于 2011-12-12 01:01:57

你没有理由这样做,只需使用connect-mongodb的会话,它实现了所有的'Session Store‘Express功能。对于其他需要数据库存储的东西,请使用Mongoose,但将会话留给connect-mongodb。

这里有一个真正的例子:https://github.com/alexyoung/nodepad

票数 0
EN

Stack Overflow用户

发布于 2011-12-12 23:13:59

Mongoose应该以某种方式暴露这种联系。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8465739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档