connect-mongodb访问会话

时间:2011-10-16 21:42:36

标签: node.js connect express

在我的node.js应用程序中,我使用expressJS和connect-mongodb作为会话存储。我已经设置connect-mongodb指向我本地的本地MongoDB(例如mongoStore(mongodb:// localhost / myAppDB')

我的所有用户身份验证都按预期工作,但我没有在我的mongodb中看到会话集合。例如,当我在终端中运行以下内容时:

$ mongo myAppDB
 > show collections

我看到了我的所有其他收藏,但没有会话。

我能以这种方式看到它们吗?

我只是希望能够从connect.sid访问我的会话,但由于mongoStore没有'get'方法,所以我试图直接从数据库中提取会话

1 个答案:

答案 0 :(得分:1)

根据connect-mongodb文档(https://github.com/masylum/connect-mongodb),版本1.x与0.x版本不兼容。在早期版本中,您可以传递URL。现在您必须传递mongodb连接或服务器配置。

以下显示我在我的应用中的表现(基本上复制了connect-mongodb文档中的示例):

var express = require('express');
var Db = require('mongodb').Db;
var Server = require('mongodb').Server;
var server_config = new Server('localhost', 27017, {auto_reconnect: true, native_parser: true});
var mongoDatabase;

mongoDatabase = new Db(app.set('db-name'), server_config, {});

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.cookieParser()); 
  app.use(express.session({
    store: new mongoStore({ db: mongoDatabase }),
    secret: 'topsecret'
  }));
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});