https://github.com/leonardofurnielis/node-error-handler
Express error handler for JSON APIs in development and production-ready environments.
https://github.com/leonardofurnielis/node-error-handler
api error error-handling express handler json nodejs
Last synced: 6 months ago
JSON representation
Express error handler for JSON APIs in development and production-ready environments.
- Host: GitHub
- URL: https://github.com/leonardofurnielis/node-error-handler
- Owner: leonardofurnielis
- License: mit
- Created: 2019-05-19T21:51:49.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-02-24T04:29:21.000Z (over 2 years ago)
- Last Synced: 2025-08-24T15:36:37.726Z (10 months ago)
- Topics: api, error, error-handling, express, handler, json, nodejs
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/node-error-handler
- Size: 485 KB
- Stars: 3
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-error-handler


[](https://codecov.io/gh/leonardofurnielis/node-error-handler)


## Installation
```bash
npm install node-error-handler --save
```
## Usage
In an [express](https://www.npmjs.com/package/express) based application:
```js
const express = require('express');
const error_handler = require('node-error-handler');
const app = express();
// Handling GET request to '/foo' endpoint
app.get('/foo', (req, res, next) => {
// Creating a new Error object with a custom message
const error = new Error('Missing field: `name`');
// Setting a custom error code
error.code = 422;
// Passing the error to the next middleware function
next(error);
});
// Adding error handling middleware
app.use(error_handler({
debug: true, // Enable debug mode
trace: app.get('env') === 'development', // Enable trace if environment is set to development
camel_case: true // Convert error keys to camel case
}));
```
## Options
| Option | Type | Default | Description |
| ------ |------|---------| ------------ |
| debug | Boolean | `false`| If `true` all errors are printed with stderr. |
| trace| Boolean | `false` | If `true` the trace is attached to output. (Recommended use in development only) |
| camel_case | Boolean | `false` | If `true` The camelCase approach is used by error handler. |
## Example
5xx error `camel_case: false`:
```
{ "error": { "status_code": 500,"code": "INTERNAL_SERVER_ERROR" } }
```
5xx error `camel_case: true`:
```
{ "error": { "statusCode": 500,"code": "INTERNAL_SERVER_ERROR" } }
```
5xx error `trace: false`:
```
{ "error": { "status_code": 500,"code": "INTERNAL_SERVER_ERROR" } }
```
5xx error `with transaction_id`:
```
{ "error": { "status_code": 500,"code": "INTERNAL_SERVER_ERROR", "transaction_id": "7616e2d3-6b90-43ba-8548-f6en12384f39" } }
```
5xx error `trace: true`:
```
{ "error":
{ "status_code": 500,
"code": "INTERNAL_SERVER_ERROR",
"trace":
at Module._compile (internal/modules/cjs/loader.js:892:18)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
at internal/main/run_main_module.js:17:11
}
}
```
The error object could contain the following fields:
| Error Key | Purpose |
| --------- | -------------------------------------------------------------------- |
| status_code | HTTP status code for response. Default value: `500` (Internal Server Error). |
| message | Error message. |
| code | Error code, associated with `status_code`. |
| trace | Trace including data for dubug such as file, paths. |
| transaction_id | Unique identifier value that is attached to requests and messages that allow reference to a particular transaction or event chain. |
## License
[MIT](LICENSE)