continuation-local storage extension for hapi

npm install hapi-cls
1 downloads in the last day
1 downloads in the last week
17 downloads in the last month

A hapi plugin that runs each request within a continuation-local storage context.


var cls = require('continuation-local-storage');
var ns = cls.createNamespace('hapi@test');
ns.set('value', 42);

var Server = require('hapi').Server;
server = new Server('localhost', 8080);

server.pack.require('hapi-cls', {namespace : ns.name}, function (err) {
  if (err) done(err);

var hello = {
  handler : function (request) {
    ns.set('value', 'overwritten');
    setTimeout(function () {
      request.reply({value : ns.get('value')});

  method : 'GET',
  path : '/hello',
  config : hello


With this setup, requests to /hello will return {"value":"overwritten"}. As with regular CLS, values that are set in route handlers will be accessible to callbacks passed to asynchronous functions.

The namespace used (or, optionally, created) by the plugin will be available in route handlers via the application state variable clsNamespace.

npm loves you