turn a connect/express middleware into a runtime replaceable, deletable middleware
JavaScript
Latest commit b066c0d Jul 12, 2016 @kessler 4.0.1
Permalink
Failed to load latest commit information.
.gitignore initial Jun 24, 2014
.travis.yml update travis with the right node.js version Jul 12, 2016
LICENSE Initial commit Jun 25, 2014
README.md readme Jul 12, 2016
index.js add errorHandler() Jul 12, 2016
package.json 4.0.1 Jul 12, 2016
test.js test for errorHandler Jul 12, 2016

README.md

dynamic-middleware Build Status

Replace or disable a connect/express middleware in runtime

compatible with express 3, express 4 and connect 3

Why?

its quite inconvenient to replace a middleware after you start a connect / express server

Install

    npm install dynamic-middleware

Usage

const DynamicMiddleware = require('dynamic-middleware')
const express = require('express')

const app = express()

// a simple middleware
function myMiddleware(req, res, next) {
    res.end('1')
}

// create a dynamic one from it
let dm = DynamicMiddleware.create(myMiddleware)

app.get('/', dm.handler()) 

// disable the middleware, will reply with 404 now
dm.disable() 

// enable it back
dm.enable()

// or replace it with something else
dm = dm.replace(function(req, res, next) {
    res.end('2')
})

// create a dynamic error middlware
let errorDm = DynamicMiddleware.create((err, req, res, next) => { ... })

app.use(errorDm.errorHandler())

see also

loadbalance module

loadbalance-middleware module

changelog

3.x.x

Previous versions operated by manipulating the internal state of express/connect , this approach worked well for real middlewares (.use()) but was terrible for routes (.get() etc..). The new version does not do that, but rather manages the state internally.

4.x.x

The public interface of this module has changed

license

MIT © yaniv kessler