node package manager
Easy sharing. Manage teams and permissions with one click. Create a free org ยป

cart

This is a connect [1] session store using supermarket [2].

It was written by Peteris Krumins (peter@catonmat.net). His blog is at http://www.catonmat.net -- good coders code, great reuse.

[1] http://github.com/senchalabs/connect [2] http://github.com/pkrumins/node-supermarket


Supermarket-cart can be used to store connect's sessions in supermarket database.

Here is a full application that starts a server on port 9005. When you first visit the root page /, it sets session name to be 'pkrumins'. Then when you visit /whoami, it will tell your name:

var Cart = require('cart');
var connect = require('connect');

var server = connect.createServer();
server.use(connect.cookieDecoder());
server.use(connect.bodyDecoder());
server.use(connect.session({
    store : new Cart({ dbFile : '/tmp/sessions.db' }),
    secret : 'your secret'
}));
server.use(
    connect.router(function (app) {
        app.get('/', function (req, res) {
            req.session.name = 'pkrumins';
            res.writeHead(200, { 'Content-Type' : 'text/html' });
            res.end();
        });
        app.get('/whoami', function (req, res) {
            res.writeHead(200, { 'Content-Type' : 'text/html' });
            res.end(req.session.name);
        });
    })
);
server.listen(9005);

Have fun storing sessions in a supermarket cart!

Sincerely, Peteris Krumins http://www.catonmat.net