Manager for custom middlewares
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.npmignore
.travis.yml
LICENSE
Makefile
README.md
index.js
package.json

README.md

MiddlewareHandler

Build Status NPM version

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(a, b, next) {
  console.log(a, b); // foo bar
  next();
});
handler.handle(['foo', 'bar']);

Installation

$ npm install middleware-handler

Example

Integration with Socket.io

Parsing cookie from handshake's data with the authorization.

var cookieParser = require('express').cookieParser('secret');
var handler = new MiddlewareHandler();
handler.use(function(handshakeData, next) {
  // handshakeData has almost the same attributes with request object.
  cookieParser(handshakeData, {}, next);
});

var io = require('socket.io').listen(8080);
io.set('authorization', function(handshakeData, callback) {
  handler.handle([handshakeData], function(err) {
    console.log(handshakeData.cookies);
    callback(err, !err);
  });
});

Documentation

#use(middleware)

middleware accepts variable arguments and a callback.

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

#handle([args], [callback])

Invokes middlewares.

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

#compose([callback])

Creates a function which invokes middlewares.

var handler = new MiddlewareHandler();
handler.use(function(a, b, next) {
  console.log(a, b);  // 'foo bar'
  next();
});

var fn = handler.compose(function(err) {
    // after calling all middlewares
  });
fn('foo', 'bar');

#clear()

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

compose(middlewares...)

Creates a function which invokes the passed middlewares.

function middleware(a, b, next) {
  console.log(a, b);  // 'foo bar'
  next();
}

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

License

MIT