micro-boom

Wraps errors in micro
services Boom
errors.
Example Responses
{
"error": "Unauthorized",
"message": "Not authenticated",
"statusCode": 401
}
{
"data": {
"reason": "Username is wrong"
},
"error": "Unauthorized",
"message": "Not authenticated",
"statusCode": 401
}
Installation
npm install --save micro-boom
Or even better
yarn add micro-boom
Import and Usage Example
const { handleErrors, createError } = require('micro-boom')
module.exports = handleErrors(async function (req, res) {
throw createError(401, 'Not authenticated', {
reason: 'Bad password'
})
})
API
handleErrors
Catches error from an async function, wraps them in a Boom error object and generates a JSON response.
The status code of an error is determined by three factors, in order:
- Status code is set to
err.output.statusCode
- If not set, error is inferred from
res.statusCode
- Default to HTTP 500 (also defaults to HTTP 500 if status is < 400)
:rotating_light: TAKE NOTE :rotating_light:
All HTTP 500 errors have their user provided message removed for security reasons.
Parameters
fn
Function Async function, your normal micro
logic.
dump
Boolean Optional. Dumps err.stack
to stderr
if true
Examples
const { handleErrors } = require('micro-boom')
module.exports = handleErrors(async function (req, res) {
throw Error('Uh-oh, something bad happened.')
})
const { handleErrors } = require('micro-boom')
module.exports = handleErrors(async function (req, res) {
res.statusCode = 401
throw Error('Unauthorized')
})
Returns an async Function.
createError
Alias for Boom#create(statusCode, [message], [data])
.
Parameters
statusCode
Number HTTP status code, must be >= 400
message
String An optional error message.
message
[Any] Some optional error metadata, serialized with JSON.stringify
.
Examples
const { handleErrors, createError } = require('micro-boom')
module.exports = handleErrors(async function (req, res) {
throw createError(500)
})
const { handleErrors, createError } = require('micro-boom')
module.exports = handleErrors(async function (req, res) {
throw createError(401, 'Unauthorized')
})
const { handleErrors, createError } = require('micro-boom')
module.exports = handleErrors(async function (req, res) {
throw createError(401, 'Unauthorized', {
reason: 'Bad password',
foo: 'bar'
})
})
Returns an async Function.