Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alvarolorentedev/express-exception-handler

express-exception-handler
https://github.com/alvarolorentedev/express-exception-handler

exception-handler exception-handling exceptions express express-middleware expressjs hacktoberfest

Last synced: 19 days ago
JSON representation

express-exception-handler

Awesome Lists containing this project

README

        

# ![logomakr_6nl700](https://user-images.githubusercontent.com/3071208/28988724-97dc463a-7971-11e7-9cec-ffc06bcc9205.png)
[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors)
[![Build Status](https://travis-ci.org/kanekotic/express-exception-handler.svg?branch=master)](https://travis-ci.org/kanekotic/express-exception-handler)
[![codecov](https://codecov.io/gh/kanekotic/express-exception-handler/branch/master/graph/badge.svg)](https://codecov.io/gh/kanekotic/express-exception-handler)
[![npm](https://img.shields.io/npm/dt/express-exception-handler.svg)](https://github.com/kanekotic/express-exception-handler)
[![GitHub license](https://img.shields.io/github/license/kanekotic/express-exception-handler.svg)](https://github.com/kanekotic/express-exception-handler/blob/master/LICENSE)
[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/kanekotic/express-exception-handler/graphs/commit-activity)

## Motivation
This package was created to add a general way to handle exception for express application with the expectation to make it simpler to handle all possible requests.

## Installation
add it to your project with `npm install express-exception-handler` or `yarn add express-exception-handler`

## Use
there are 2 different ways to integrate the main functionality of this package, either by adding the handle that gets injected to the router framework

```js
var exceptionHandler = require('express-exception-handler')
exceptionHandler.handle()
const app = require('express')()
```

or by wraping manually the routes

```js
var wrap = require('express-exception-handler').wrap
router.post('/', wrap(async (req, res) => {
...
}))
```

it also integrates an extended class from Error that contains a `message` and a `status` that can be used to pass diferent information to the error handle

```js
var httpError = require('express-exception-handler').exception
router.post('/', async (req, res) => {
throw new HttpError('Great Message', 400, "{Response: awesome}")
}))
```

last but not least it also contains a middleware that can be added directly to express that handles the previous named errors.

```js
var middleware = require('express-exception-handler').middleware
const app = require('express')()
app.use(middleware)
```

### Options

The `handle` and the `wrap` function allow configuration parameters to be passed. The default is:

```js
{
nextOnce: true,
defaultJsonResponse: false,
}
```

* nextOnce: makes sure next can only be called once
* defaultJsonResponse: runs `res.json` by default when the internally returned value is an object.

### Logo

Arrows graphic by madebyoliver from Flaticon is licensed under CC BY 3.0. Check out the new logo that I created on LogoMaker.com https://logomakr.com/6nL7006nL700
## Contributors

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Brad Reed

💻

Oren Zomer

💻

Tu Nguyen

🤔

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!