Manage sessions for http.ServerRequest using various storage engines
npm install session-managersession-manager provides a session management layer around node's built in http server using cookies.
This example builds on Node's example web server, and responds with an incrementing count, per user.
``javascript
var http = require('http');
var sessionManager = require('./session-manager.js');
// Best to use one shared session manager across requests
var sessionManager = sessionManager.create({engine: 'memory'});
// Usage with Node's HTTP Server
http.createServer(function (req, res) {
if (req.url == '/') {
// Load session for this user
var session = sessionManager.start(req, res);
session.set('count', (session.get('count') || 0) + 1);
}
// Display count
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end((session ? session.get('count') : '') + '\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
`
It supports various (and extensible) data storage engines. Currently included ones are:
- file (stores data on disk)
- memory (keeps data in array, useful for development, as restarting node will reset values)
It is simple to create a new storage engine, e.g. redis by creating an object with two function keys, set(session_id, key, val) and get(session_id, key)`.
The simplest example to base this on is the memory engine (./engines/memory.js).