In my node.js app I am using expressJS and connect-mongodb for the session store. I have set connect-mongodb to point to me local my local MongoDB (e.g. mongoStore(mongodb://localhost/myAppDB')
All my u开发者_StackOverflow社区ser authentication works as expected, but I am not seeing a sessions collection in my mongodb. For example when I run the following in the terminal:
$ mongo myAppDB
> show collections
I see all my other collection, but no sessions.
Should I be able to see them this way?
I just want to be able to access my session from the connect.sid, but since mongoStore has no 'get' method, so I am trying to pull the session directly from the database
According to the connect-mongodb documentation (https://github.com/masylum/connect-mongodb) version 1.x is not compatible with 0.x versions. In earlier versions you could pass an URL. Now you must pass a mongodb connection, or server configuration.
The following shows how I it is in my app (essentially copied the example in the connect-mongodb docs):
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'));
});
精彩评论