Node.js nodejs会话存储
在connect mongodb模块中,我们可以在mongodb中存储会话,如下所示: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
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开发。你看到那个数据库了吗?