Never Perfectly Managed

    express-session-mongo

    0.1.0 • Public • Published

    MongoDB Session Storage for ExpressJS

    This module is an addon for ExpressJS that adds a new Session Storage device.

    Install

    npm install https://github.com/trottski/express-session-mongo/archive/master.tar.gz
    

    Usage

    The standard usage, is to just pass an instantiated MongoStore instance to the session plugin.

    var xp = require('express'),
        MongoStore = require('express-session-mongo');
    
    var app = xp.createServer();
    
    app.configure(function(){
        app.use(xp.cookieDecoder());
        app.use(xp.session({ store: new MongoStore() }));
        app.use(app.router);
    });
    

    You can also pass several options to the constructor to tweak your session store:

    • db - The name of the db to use, defaults to: express-sessions
    • ip - The IP address of the server to connect to, defaults to: 127.0.0.1
    • port - The Port to connect to, defaults to: 27017
    • collection - The collection to save it's data to, defaults to: sessions
    • server - A custom mongo Server instance (this overides db, ip & port):
    • fsync - Confirm writes after they have been flushed to disk, default: false.
    • native_parser - Use BSON native parser, defaults to: true.
    • username - The username for the database.
    • password - The password which corresponds to the database
    • authenciated - An err-first callback that fires once connected and an auth attempt is made.
    var CustomServer = new Server(123.456.789.1, 12345, { auto_reconnect: true }, {});
    app.use(xp.session({ store: new MongoStore({ server: CustomServer }) }));

    Removing stale sessions

    MongoDB 2.2 and above supports doing this via an index, see http://docs.mongodb.org/manual/tutorial/expire-data/ To enable this, run

    db.sessions.ensureIndex( { "lastAccess": 1 }, { expireAfterSeconds: 3600 } )
    

    Mongo will now remove all sessions older than an hour (every 60 seconds).

    Changes from davglass/express-session-mongo

    1. Removes connect as a dependency
    2. Adds fsync and native_parser options to constructor
    3. Removes manual session cleanup cleanup code (see Removing stale sessions below)

    License

    Licensed under my standard BSD license.

    Based on these classes

    Keywords

    none

    Install

    npm i express-session-mongo

    DownloadsWeekly Downloads

    2

    Version

    0.1.0

    License

    none

    Last publish

    Collaborators

    • davglass