我正在尝试在node.js中创建与mongodb的会话 我已经有了这样的连接
var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;
var client=new Db('db',new Server('localhost', 27017), {safe:false});
然后我尝试配置这样的会话
app.use(express.session({
store: new mongoStore({ db: client }),
secret: 'topsecret'
}));
我运行了server.js文件我得到了这个错误mongoStore undefined 所以为了解决这个错误我添加了这个
var mongoStore= require('connect-mongodb');
我再次运行它我没有得到任何错误但是当我试图找到或保存数据到db时我得到了以下错误
Cannot call method 'findOne' of undefined
如何解决此问题以及如何在node.js中使用mongodb创建会话
答案 0 :(得分:3)
这是一个非常简单的设置:
var express = require('express');
var MongoStore = require('connect-mongo')(express);
var app = express();
app.use(express.cookieParser()); // required to handle session cookies!
app.use(express.session({
secret : 'YOUR_SESSION_SECRET',
cookie : {
maxAge : 10000 // expire the session(-cookie) after 10 seconds
},
store : new MongoStore({
db: 'sessionstore'
// see https://github.com/kcbanner/connect-mongo#options for more options
})
}));
app.get('/', function(req, res) {
var previous = req.session.value || 0;
req.session.value = previous + 1;
res.send('<h1>Previous value: ' + previous + '</h1>');
});
app.listen(3012);
如果您运行它并在浏览器中打开http://localhost:3012/
,则每次重新加载时它会将值增加1。 10秒后,会话将过期,值将重置为0.