0.0.3 • Published 7 years ago

selective-middleware v0.0.3

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
7 years ago

selective-middleware

Applies your Express middleware such that it runs only on select methods and/or paths. A common use-case for this package is identifying when and when not to require user authorization on an express server.

Parameters

options - The options parameter is an object that may include any of the following properties: (NOTE: only the properties supplied will take effect. For example, An object with only a base_path property will do nothing.)

  • base_path: a string that supplies the base_path of the api before any path string.
  • paths: an array of strings of paths. The base_path will be concatenated before all paths if it is supplied. If supplied, it will raise the flag on any request matching the supplied path(s).
  • methods: an array of strings of http methods. They must be in all caps. If supplied, it will raise the flag on any request matching supplied method(s).
  • any http method: an array of strings of paths. The property here must be capitalized (ex: 'PUT') followed by an array of paths to flag. When a request is made that matches both the method and a path in the array, the flag will be raised.
  • prefix: a function that executes for every flagged request received before continuing to the next middleware.

Example:

const select = require('selective-middleware');

app.use(select({
  base_path: '/domains/foo/bar',
  GET: ['/:baz/logs'],
  PUT: ['/:baz'],
  POST: ['/'],
  DELETE: ['/:baz'],
  prefix: () => console.log('Function executed')
}));

Any of the paths mentioned in the options passed in to the middleware function will cause the function to be executed and print "Function executed" to the console. The property "flagged" will appear on the request object with the following schema:

{
    [req.method]: [req.path]
}

If the request method and/or path do not match those specified, the "flagged" property will be null.