express-unless

Conditionally skip a middleware when a condition is met.

Install

npm i express-unless --save

Usage

With existing middlewares:

var unless = require('express-unless');


var static = express.static(__dirname + '/public');
static.unless = unless;

app.use(static.unless({ method: 'OPTIONS' }));

If you are authoring a middleware you can support unless as follow:

module.exports = function (middlewareOptions) {
  var mymid = function (req, res, next) {

  };

  mymid.unless = require('express-unless');

  return mymid;
};

Current options

  • method it could be an string or an array of strings. If the request method match the middleware will not run.

  • path it could be an string, a regexp or an array of any of those. It also could be an array of object which is url and methods key-pairs. If the request path or path and method match, the middleware will not run. Check Examples for usage.

  • ext it could be an string or an array of strings. If the request path ends with one of these extensions the middleware will not run.

  • custom it must be a function that accepts req and returns true / false. If the function returns true for the given request, the middleware will not run.

  • useOriginalUrl it should be true or false, default is true. if false, path will match against req.url instead of req.originalUrl. Please refer to Express APIarrow-up-right for the difference between req.url and req.originalUrl.

Examples

Require authentication for every request unless the path is index.html.

Avoid a fstat for request to routes doesnt end with a given extension.

License

MIT 2014 - Jose Romaniello

Last updated