async-middleware-stack

1.0.1 • Public • Published

async-middleware-stack

Simple middleware controller. Like express, but async.


Usage

const Stack = require('async-middleware-stack')
const stack = new Stack()
 
// Add middleware function to the stack
stack.use((req, res) => {
  return new Promise(resolve => {
    setTimeout(resolve, 5000)
  })
})
 
// Run the stack
const req = { /** usual node.js req object **/ }
const res = { /**           ^^^^           **/ }
try {
  await stack.run(req, res)
} catch (err) {
  // middleware chain broken, so you prolly don't wanna proceed.
}
 

To break the stack chain, simply return any truthy value. stack.run will then return false.


API

new Stack(config)

Returns a Stack controller.

(optional) config options:

Argument Description Default
middleware Existing array of functions to base the stack on None

stack.use(route, fn, method)

Adds a function to the middleware stack.

Argument Description Default
route URL to limit the function to. If first arg is a function, it'll be considered as fn, NOT as route. '*'
fn Function to execute with req, res, opitonal objects. None
fn RESTful method to limit the function to. Default accepts any. '*'

stack.run(req, res, optional)

Returns a promise resolving with true when all functions are done running

Argument Description Default
req Request object from node.js/express. Must have url property. None
res Response object from node.js/express. None
optional Optional object to pass to every function. None

Readme

Keywords

none

Package Sidebar

Install

npm i async-middleware-stack

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

4.51 kB

Total Files

4

Last publish

Collaborators

  • kaptard