node-error-handler

1.4.0 • Public • Published

node-error-handler

npm workflow codecov GitHub npm

Installation

npm install node-error-handler --save

Usage

In an express based application:

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

Dependencies (1)

Dev Dependencies (10)

Package Sidebar

Install

npm i node-error-handler

Weekly Downloads

11

Version

1.4.0

License

MIT

Unpacked Size

10.7 kB

Total Files

9

Last publish

Collaborators

  • leonardofurnielis