Error handler for use in development (debug) and production environments.
Go to file
David Cheung 4770af97ae Merge pull request #15 from strongloop/html-response
Html response and content negotiation
2016-06-14 12:33:15 -04:00
lib HTML response for accepted headers 2016-06-14 12:04:32 -04:00
test Test with express instead of http server 2016-06-14 12:04:32 -04:00
views HTML response for accepted headers 2016-06-14 12:04:32 -04:00
.eslintrc Add project infrastructure 2016-05-13 12:58:28 +02:00
.gitignore Initial commit 2016-01-22 09:08:22 -08:00
.travis.yml Add project infrastructure 2016-05-13 12:58:28 +02:00
CHANGES.md 1.0.1 2016-05-26 09:24:35 +02:00
LICENSE.md Add project infrastructure 2016-05-13 12:58:28 +02:00
README.md HTML response for accepted headers 2016-06-14 12:04:32 -04:00
package.json Test with express instead of http server 2016-06-14 12:04:32 -04:00

README.md

strong-error-handler

Error handler for use in development (debug) and production environments.

  • When run in production mode, error responses are purposely undetailed in order to prevent leaking sensitive information.

  • When in debug mode, detailed information such as stack traces are returned in the HTTP responses.

Install

$ npm install strong-error-handler

Usage

In an express-based application:

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.

{
  "final:after": {
    "strong-error-handler": {
      "params": {
       }
    }
  }
}

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.

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.

app.use(myErrorLogger());
app.use(errorHandler({ log: false }));