middleware-handler

Manager for custom middlewares

MiddlewareHandler

MiddlewareHandler manages custom middlewares in the same way as how Express/Connect does.

var MiddlewareHandler = require('middleware-handler');
 
var handler = new MiddlewareHandler();
handler.use(function(abnext) {
  console.log(a, b); // foo bar 
  next();
});
handler.handle(['foo', 'bar']);
$ npm install middleware-handler

Parsing cookie from handshake's data with the authorization.

var cookieParser = require('express').cookieParser('secret');
var handler = new MiddlewareHandler();
handler.use(function(handshakeDatanext) {
  // handshakeData has almost the same attributes with request object. 
  cookieParser(handshakeData, {}, next);
});
 
var io = require('socket.io').listen(8080);
io.set('authorization', function(handshakeDatacallback) {
  handler.handle([handshakeData], function(err) {
    console.log(handshakeData.cookies);
    callback(err, !err);
  });
});

middleware accepts variable arguments and a callback.

var handler = new MiddlewareHandler();
handler.use(function(argnext) {
  var err;
  // do some stuff 
  next(err);  // optionally accepts an error object 
});
handler.use(function(argnext) {
  next(null, 'foo'); // arguments will be passed to a next middleware 
});
handler.use(function(argnext) {
  console.log(arg);  // 'foo' 
  next();
});

Invokes middlewares.

var handler = new MiddlewareHandler();
handler.use(function(abnext) {
  console.log(a, b);  // 'foo bar' 
  next();
});
handler.handle(['foo', 'bar'], function(err) {
  // after calling all middlewares 
});

Creates a function which invokes middlewares.

var handler = new MiddlewareHandler();
handler.use(function(abnext) {
  console.log(a, b);  // 'foo bar' 
  next();
});
 
var fn = handler.compose(function(err) {
    // after calling all middlewares 
  });
fn('foo', 'bar');

Clear all middlewares from the stack.

var handler = new MiddlewareHandler();
handler.use(function() {});
console.log(handler.stack.length);  // 1 
 
handler.clear();
console.log(handler.stack.length);  // 0 

Creates a function which invokes the passed middlewares.

function middleware(abnext) {
  console.log(a, b);  // 'foo bar' 
  next();
}
 
var fn = MiddlewareHandler.compose(middleware, function(ab) {
    console.log(a, b);  // 'foo bar' 
  });
fn('foo', 'bar');

MIT