Node.js nodejs会话存储

Node.js nodejs会话存储,node.js,mongoose,Node.js,Mongoose,在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

在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})
})
);
var express = require('express');
var MongoStore = require('connect-mongo')(express);

new MongoStore({ mongoose_connection: mongoose.connection })
在上面的示例中,我们必须使用原生mongodb。在我的nodejs项目中,我使用mongoose2.4.1,那么应该如何重写代码以使用mongoose呢


谢谢

您没有理由这么做,只需使用连接mongodb的会话即可,它实现了所有“会话存储”Express功能。使用Mongoose处理需要db存储的所有其他内容,但将会话留给connect mongodb


这里有一个这样做的真实示例:

Mongoose应该以某种方式公开连接。

如果您使用的是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 })
})

如果使用
连接mongo
,请按如下方式传递mongoose连接:

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 express = require('express');
var MongoStore = require('connect-mongo')(express);

new MongoStore({ mongoose_connection: mongoose.connection })

一切都会按照您的预期运行。

我已经尝试过这个:store:MongoSessionStore()mongodb://localhost/test“)但它不在这里工作,在第88行:我使用它。connect.createServer(connect.bodyParser()、connect.cookieParser()、connect.session({cookie:{maxAge:60000*20}//20分钟,秘密:'foo',store:new mongoStore({db:db})})删除'new'单词,离开->store:mongoStore('mongodb://localhost/nodepad-test,秘密:“asdasd”);我试过你的例子,但我没有看到MongoDB中的数据库nodepad开发。你看到那个数据库了吗?