Express Circut Breaker

Provides error protection within an express route

Installation

npm i express-circut-breaker

var breaker = require ( ' express-circut-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)

Called when a child node throws an error. Must return trip or reset .

return 'trip' : Trips the breaker and blocks future requests

: Trips the breaker and blocks future requests return '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 .

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