0.1.0 • Published 12 years ago

session-manager v0.1.0

Weekly downloads
14
License
-
Repository
github
Last release
12 years ago

Session Handling for NodeJS' HTTP Server

session-manager provides a session management layer around node's built in http server using cookies.

Usage example

This example builds on Node's example web server, and responds with an incrementing count, per user.

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/');

Storage engines.

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)

Storing session data another way (creating new storage engine)

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).