Skip to content

aheckmann/koa-session-mongodb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

koa-session-mongodb

MongoDB backed session middleware for Koa.js

Unstable

This module currently suffers from a memory leak due to its reliance on the observed module. You probably want to use this module instead while we wait for v8 to fix the memory leak.

Installation

$ npm install koa-session-mongodb

Example

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

  app.listen(3000);
  console.log('listening on port 3000');
})

Semantics

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.

API

Options

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.

Session#isNew

Returns true if the session is new.

Destroying a session

To destroy a session simply set it to null:

this.session = null;

License

MIT

About

MongoDB backed session middleware for Koa

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published