2016-05-11 07:29:31 +00:00
|
|
|
# strong-error-handler
|
|
|
|
|
2016-05-11 11:53:28 +00:00
|
|
|
Error handler for use in development (debug) and production environments.
|
|
|
|
|
2016-07-12 14:37:26 +00:00
|
|
|
- When run in production mode, error responses are purposely left without detail
|
2016-05-11 11:53:28 +00:00
|
|
|
in order to prevent leaking sensitive information.
|
|
|
|
|
|
|
|
- When in debug mode, detailed information such as stack traces
|
|
|
|
are returned in the HTTP responses.
|
|
|
|
|
|
|
|
## Install
|
2016-05-11 07:29:31 +00:00
|
|
|
|
|
|
|
```bash
|
|
|
|
$ npm install strong-error-handler
|
|
|
|
```
|
2016-05-11 11:53:28 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
In an express-based application:
|
|
|
|
|
|
|
|
```js
|
|
|
|
var express = require('express');
|
|
|
|
var errorHandler = require('strong-error-handler');
|
|
|
|
|
|
|
|
var app = express();
|
|
|
|
// setup your routes
|
|
|
|
app.use(errorHandler({ /* options, see below */ }));
|
|
|
|
|
|
|
|
app.listen(3000);
|
|
|
|
```
|
|
|
|
|
|
|
|
In LoopBack applications, add the following entry to your
|
|
|
|
`server/middleware.json` file.
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"final:after": {
|
|
|
|
"strong-error-handler": {
|
|
|
|
"params": {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2016-05-27 15:04:20 +00:00
|
|
|
## Content Type
|
|
|
|
|
|
|
|
Depending on the request header's `Accepts`, response will be returned in
|
|
|
|
the corresponding content-type, current supported types include:
|
|
|
|
- JSON (`json`/`application/json`)
|
|
|
|
- HTML (`html`/`text/html`)
|
|
|
|
|
|
|
|
*There are plans to support other formats such as Text and XML.*
|
|
|
|
|
2016-05-11 11:53:28 +00:00
|
|
|
## Options
|
|
|
|
|
|
|
|
#### debug
|
|
|
|
|
|
|
|
`boolean`, defaults to `false`.
|
|
|
|
|
|
|
|
When enabled, HTTP responses include all error properties, including
|
|
|
|
sensitive data such as file paths, URLs and stack traces.
|
|
|
|
|
|
|
|
#### log
|
|
|
|
|
|
|
|
`boolean`, defaults to `true`.
|
|
|
|
|
|
|
|
When enabled, all errors are printed via `console.error`.
|
|
|
|
|
|
|
|
Customization of the log format is intentionally not allowed. If you would like
|
|
|
|
to use a different format/logger, disable this option and add your own custom
|
|
|
|
error-handling middleware.
|
|
|
|
|
|
|
|
```js
|
|
|
|
app.use(myErrorLogger());
|
|
|
|
app.use(errorHandler({ log: false }));
|
|
|
|
```
|