mniam-store is a connect session store backed by mongodb
mniam is used to access as a access layer which means no async on init, simple configuration and seamless connection sharing if your app is using DB
mniam-store is compatible with express-session middleware
$ npm install mniam-store
db
existing database created with mniam (can be shared with other parst of the app)collection
name of the mongo collection to keep sessions in (default: sessions)maxAge
- (seconds) specifies how long sessions should stay in DB - should be set-up to a value slightly larger thancookie.maxAge
- defaults to 1 day
Similar to other connect session stores.
var connect = require('connect');
var mniam = require('mniam');
var MniamStore = require('mniam-store')(connect);
// use DB for mniam store only or share it with other parts of the app
var db = mniam.db('mongourl://localhost/database');
connect().use(connect.session({
store: new MniamStore({
db: db
})
}));
Since mniam-store
is using mongo TTL index sessions created with
previous versions will not expire automatically. We need to time stamp old sessions after the upgrade:
db.sessions.update(
{_mod: {$exists:0}},
{$currentDate:{_mod:true}},
{multi:true}
);
And drop old index in expires
:
db.sessions.dropIndex({expires:1});
MIT