node package manager


koajs sessions backed by mongodb


MongoDB backed session middleware for Koa.js

$ npm install koa-session-mongodb

View counter example:

var session = require('koa-session-mongodb');
var mongo = require('mongodb').MongoClient;
var koa = require('koa');
mongo.connect(uri, function(err, db){
  if (err) throw err;
  var app = koa();
  app.keys = ['some secret'];
  app.use(session({ collection: db.collection('session') }));
  app.use(function *(){
    var n = this.session.views || 0;
    this.session.views = ++n;
    this.body = n + ' views';
  console.log('listening on port 3000');

This module provides "guest" sessions, meaning any visitor will have a session, authenticated or not. If a session is new a Set-Cookie will be produced regardless of populating the session.

The cookie name is controlled by the key option, which defaults to "sid". All other options are passed to ctx.cookies.get() and ctx.cookies.set() allowing you to control security, domain, path, and signing among other settings.

Returns true if the session is new.

To destroy a session simply set it to null:

this.session = null;