Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 2 months ago
JSON representation
express-exception-handler
- Host: GitHub
- URL: https://github.com/alvarolorentedev/express-exception-handler
- Owner: alvarolorentedev
- License: mit
- Created: 2017-08-04T17:52:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-10-22T00:13:52.000Z (2 months ago)
- Last Synced: 2024-10-22T21:43:36.726Z (2 months ago)
- Topics: exception-handler, exception-handling, exceptions, express, express-middleware, expressjs, hacktoberfest
- Language: JavaScript
- Homepage:
- Size: 1.38 MB
- Stars: 8
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
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
## ContributorsThanks 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!