8

How do I get sessions working with Node.js, express@2.0.0 and mongodb? I'm now trying to use connect-mongo like this:

var config = require('../config'),
    express = require('express'),
    MongoStore = require('connect-mongo'),
    server = express.createServer();

server.configure(function() {
    server.use(express.logger());
    server.use(express.methodOverride());
    server.use(express.static(config.staticPath));
    server.use(express.bodyParser());
    server.use(express.cookieParser());
    server.use(express.session({
        store: new MongoStore({
            db: config.db
        }),
        secret: config.salt
    }));
});

server.configure('development', function() {
    server.use(express.errorHandler({
        dumpExceptions: true,
        showStack: true
    }));
});

server.configure('production', function() {
    server.use(express.errorHandler());
});

server.set('views', __dirname + '/../views');
server.set('view engine', 'jade');

server.listen(config.port);

I'm then, in a server.get callback trying to use

req.session.test = 'hello';

to store that value in the session, but it's not stored between the requests.

It probobly takes something more that this to store session values, how? Is there a better documented module than connect-mongo?

tirithen
  • 3,219
  • 11
  • 41
  • 65
  • require('connect-mongo') will store session info as a string as long as you are aware. https://github.com/kcbanner/connect-mongo/issues/10 – fullstacklife Dec 03 '11 at 18:17

2 Answers2

4

Take a look at this series from DailyJS. It uses MongoDB and session management

http://dailyjs.com/tags.html#lmawa

johans
  • 1,674
  • 12
  • 7
  • 16
    That's quite a list of articles, a more direct link would be: http://dailyjs.com/2010/12/06/node-tutorial-5/ – Jim T May 05 '11 at 10:12
1

I am not experienced with Node.js or Express, so I cannot immediately see what's wrong with your approach. However, I have made Express use MongoDB to store sessions for flash messages and other session stuff.

You can see my source code for a simple URL shortener here (that actually makes the URLs pretty long at the moment - it was just an exercise ;)). I use the session to store a list of URLs that the current user has shortened.

It is not pretty, but I know it works.

mookid8000
  • 18,258
  • 2
  • 39
  • 63