Basic error handler for express. This middleware shows errors according to the "Accept" header. It will shutdown app in case of uncaught error.
yarn add express-err
import express from 'express'
import errorHandler, { httpError } from 'express-err'
const app = express()
// Basic route.
app.get('/', (req, res) => {
res.send('Hello world!')
})
// Redirect other routes to 404.
app.use(httpError(404))
// Handle errors.
app.use(errorHandler())
The error handler middleware is used to display errors and shutdown app in case of uncaught error.
The avalaible options are:
Tell to the process to exit on uncaught exceptions. Defaults to true
.
app.use(errorHandler({ exitOnUncaughtException: false }))
The code used to exit app in case of uncaught exception. Defaults to 1
.
app.use(errorHandler({ exitCode: 2 }))
The default HTTP error code. Defaults to 500
.
app.use(errorHandler({ status: 503 }))
The error handler come with some preconfigured formatters, one for "json", "text" and "html". It's possible to provide your own formatters:
import { text } from 'express-err/lib/formatters'
app.use(
errorHandler({
formatters: {
json(err, req, res, next) {
res.send({ error: true })
},
default: text,
},
}),
)
You can use httpError to return a custom error with a status and a message, if you don't provide a message, it will automatically use the HTTP status.
import { httpError } from 'express-err'
app.use(httpError(404))
You can create a custom HttpError with a status and a message, if you don't provide a message, it will automatically use the HTTP status.
import { HttpError } from 'express-err'
app.use((req, res, next) => {
next(new HttpError(404, 'Bad way'))
})
MIT