npm.io
1.0.1 • Published 8 years ago

async-middleware-stack

Licence
MIT
Version
1.0.1
Deps
0
Size
4 kB
Vulns
0
Weekly
0
Stars
1

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