3.1.0 • Published 9 years ago
http-errors-express v3.1.0
http-errors-express
Express middleware for handling errors generated or compatible with the http-errors module. Sends errors to client using JSON, for example:
import createError from 'http-errors'
// ...
app.post('/pay', (req, res, next) => {
next(createError(402, 'Your balance is too low.', {
detail: {
currentBalance: 100,
price: 150,
},
}))
})
// ...would send the following JSON response payload to the client:
{
"error": {
"name": "PaymentRequiredError",
"message": "Your balance is too low.",
"detail": {
"currentBalance": 100,
"price": 150
}
}
}See ./test/index.js for more examples.
Install
npm install --save http-errors-expressUsage
httpErrors(opts)
All options are optional.
opts.beforefunction with(err, req, isExposed, cb)signature that can be used to log errors for example. Defaults to logging withconsole.errorfor unexposed errors. Can ignore thecband instead return a promise.opts.formatErrorfunction with(err, req, isExposed)signature which formats errors before passing tores.json
Returns an Express middleware. The HTTP response is only sent after the
before function's callback is called. This is useful if we want to
include an error ID received from a remote error logging service (e.g.
service) as part of the response.
If an exposed error has a detail property, it will by default be
included as part of the JSON response.
import express from 'express'
import httpErrors from 'http-errors-express'
const app = express()
// ...
// This should be the last middleware
app.use(httpErrors())See ./test/index.js for more examples.