1.4.0 • Published 2 months ago

node-error-handler v1.4.0

Weekly downloads
28
License
MIT
Repository
github
Last release
2 months ago

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

OptionTypeDefaultDescription
debugBooleanfalseIf true all errors are printed with stderr.
traceBooleanfalseIf true the trace is attached to output. (Recommended use in development only)
camel_caseBooleanfalseIf 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 KeyPurpose
status_codeHTTP status code for response. Default value: 500 (Internal Server Error).
messageError message.
codeError code, associated with status_code.
traceTrace including data for dubug such as file, paths.
transaction_idUnique identifier value that is attached to requests and messages that allow reference to a particular transaction or event chain.

License

MIT

1.4.0

2 months ago

1.3.1

9 months ago

1.3.0

9 months ago

1.2.8

2 years ago

1.2.9

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.15

3 years ago

1.1.14

3 years ago

1.1.13

4 years ago

1.1.12

4 years ago

1.1.11

4 years ago

1.1.10

4 years ago

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago