express-err

Basic error handler for express.

Stats

StarsIssuesVersionUpdatedCreatedSize
express-err
603.0.03 years ago8 years agoMinified + gzip package size for express-err in KB

Readme

express-err

Build Status Dependency Status devDependency Status

Basic error handler for express. This middleware shows errors according to the "Accept" header. It will shutdown app in case of uncaught error.

Install

yarn add express-err

Usage

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())

errorHandler(options)

The error handler middleware is used to display errors and shutdown app in case of uncaught error.

The avalaible options are:

exitOnUncaughtException

Tell to the process to exit on uncaught exceptions. Defaults to true.

app.use(errorHandler({ exitOnUncaughtException: false }))

exitCode

The code used to exit app in case of uncaught exception. Defaults to 1.

app.use(errorHandler({ exitCode: 2 }))

defaultStatusCode

The default HTTP error code. Defaults to 500.

app.use(errorHandler({ status: 503 }))

formatters

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,
    },
  }),
)

httpError(status, [message])

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))

new HttpError(status, [message])

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'))
})

License

MIT

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.