0

我正在尝试在 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');

我再次运行它我没有收到任何错误但是当我尝试查找或将数据保存到数据库时出现以下错误

    Cannot call method 'findOne' of undefined

如何解决这个问题以及如何在 node.js 中创建与 mongodb 的会话

4

1 回答 1

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。

于 2013-05-23T10:34:56.023 回答