Skip to content

Invokes connect-like middleware if / unless routing criteria matches. Inspired on express-unless module.

License

Notifications You must be signed in to change notification settings

BackendStack21/middleware-if-unless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Invokes connect-like middleware if / unless routing criteria match.

Inspired by the express-unless module.

Main features

  • Advanced routes matching capabilities. Uses find-my-way or any compatible router to match the routes.
  • iff: execute middleware only if routing criteria is a match. Ideal use case: API gateways (see: fast-gateway)
  • unless: execute middleware unless routing criteria is a match.
  • Arbitraty chaining of iff -> unless of vice-versa.
  • Low overhead, blazing fast implementation.

Usage

Install

npm i middleware-if-unless

Extending middleware

const iu = require('middleware-if-unless')() const middleware = function (req, res, next) { res.body = 'hit' return next() } // extend middleware with iff/unless capabilities iu(middleware)

unless

Execute middleware unless routing criteria is a match:

const app = require('express')() app.use(middleware.unless([ '/not/allowed/to/hit' ])) ...

In this example, all requests except [GET] /not/allowed/to/hit will cause the middleware to be executed.

iff

Execute middleware only if routing criteria is a match:

const app = require('express')() app.use(middleware.iff([ { methods: ['POST', 'DELETE', 'PUT', 'PATCH'], url: '/tasks/:id' } ])) ...

In this example, only a [POST|DELETE|PUT|PATCH] /tasks/:id request will cause the middleware to be executed.

More

About

Invokes connect-like middleware if / unless routing criteria matches. Inspired on express-unless module.

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published