在我的node.js应用程序中,我使用expressJS和connect-mongodb作为会话存储。我已经设置connect-mongodb指向我本地的本地MongoDB(例如mongoStore(mongodb:// localhost / myAppDB')
我的所有用户身份验证都按预期工作,但我没有在我的mongodb中看到会话集合。例如,当我在终端中运行以下内容时:
$ mongo myAppDB
> show collections
我看到了我的所有其他收藏,但没有会话。
我能以这种方式看到它们吗?
我只是希望能够从connect.sid访问我的会话,但由于mongoStore没有'get'方法,所以我试图直接从数据库中提取会话
答案 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'));
});