Express Circut Breaker
Provides error protection within an express route
Installation
npm i express-circut-breaker
var breaker =
Usage
express-circut-breaker
produces a middleware that will block requests if an error was thrown from a previous use.
API
For breaker(opts)
opts.catchError(e)
Called when a child node throws an error. Must return trip
or reset
.
return 'trip'
: Trips the breaker and blocks future requestsreturn 'reset'
: Resets the breaker to it's untripped state and allows future requests
opts.handleLater = false
Does not block request, instead allows request to be handled by next middleware. Breaker status is communicated in the req.breakerTripped
. If true
, breaker will not run handleBlockedRequest
.
opts.handleBlockedRequest(req, res)
A middleware for handling incoming requests that were blocked by the breaker
Workflow
request(/protected) -> server -> breaker(open) -> endpoint
|
V
request(receives error 500) <- server <- breaker(tripped) <- endpoint(throws error)
Then later...
request(/protected) -> server <- breaker(tripped, sends back 500) -- endpoint(never touched)
Example implementation
var app = var breaker = var CB = app app