Connectr for Connect (Node.js)
Connectr is a layer on top of Connect that allows the insertion/removal of middlewares
after the stack has been built. This is especially useful when you don't
have access to the code that sets up your Connect stack (a third party
module for example).
This module also supports Express.
Install
npm install connectr
Usage
var connectr = require('connectr')(app);
connectr.use(middleware).as(label);
connectr.index(index).as(label);
connectr.before(label).use(middleware).as(label);
connectr.after(label).use(middleware);
connectr.first().use(middleware);
connectr.remove(label);
connectr.index(i).as(label);
Simple Example
var connect = require('connect'),
var app = connect();
var connectr = require('connectr')(app);
connectr.use(connect.cookieParser).as('cookieParser');
connectr.before('cookieParser').use(function (req, res, next) {
console.log('Before cookie parser...');
next();
}).as('log before cookie parser');
Kitchen Sink Example
var http = require('http'),
connect = require('connect'),
app = connect(),
connectr = require('connectr')(app);
var cookieParser = connect.cookieParser();
cookieParser.label = 'cookieParser';
app.use(cookieParser);
connectr.before('cookieParser').use(function (req, res, next) {
console.log('Middleware before cookie parser.');
next();
});
connectr.after('cookieParser').use(function (req, res, next) {
console.log('Middleware after cookie parser.');
next();
});
connectr.use(connect.bodyParser()).as('bodyParser');
connectr.use(function (req, res, next) {
console.log('Last middleware');
res.end('Done!');
});
connectr.before('bodyParser').use(function (req, res, next) {
console.log('Before body parser');
next();
}).as('beforeBodyParser');
connectr.after('beforeBodyParser').use(function (req, res, next) {
console.log('I should be called after beforeBodyParser but before bodyParser');
next();
}).as('betweenBeforeBodyParserAndBodyParser');
connectr.after('bodyParser').use(function (req, res, next) {
console.log('After body parser');
next();
}).as('afterBodyParser');
http.createServer(app).listen(3000);
License
MIT: http://olalonde.mit-license.org