Skip to content

davglass/express-session-mongo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

MongoDB session storage for ExpressJS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •