@josephdaw/error-handler

1.2.2 • Public • Published

Error Handler

npm (scoped) GitHub Node.js CI Contributor Covenant

Table of Contents

Description

A custom error handler for a node.js and express application.

Installation

Using npm

npm install @josephdaw/error-handler

Usage

Importing

const { errorhandler, CustomError} = require('@josephdaw/error-handler');

Basic Usage

In your express application, add the error handler as the last middleware.

const errorhandler = require('@josephdaw/error-handler');
const express = require('express');
const app = express();

// ... other middleware

app.use(errorhandler());

Using with a Custom Logger

You can pass a custom logger to the error handler. The logger must have a log method that accepts a string. In the example below, we are using a custom logger package. You can create your own custom logger, or just pass in a generic logger such as winston or pino.

const logger = require('@josephdaw/logger');
const errorhandler = require('@josephdaw/error-handler');
const express = require('express');
const app = express();

// ... other middleware

app.use((err, req, res, next) => {
    errorHandler(err, req, res, next, logger);
});

Using with a Custom Error Class

You can pass a custom error to the error handler. The error must be an instance of the CustomError class. In the example below, we are using a custom error package. You can create your own custom error, or just pass in a generic error such as the built in Error class.

const { CustomError } = require('@josephdaw/error');

app.all('*', (req, res, next) => {
    const err = new CustomError('Route Not Found', 404);
    next(err);
});

Handling Async Errors

You can use the error handler to handle async errors. In the example below, we are using the asyncErrorHandler package to wrap our async route handlers. This will throw the error back to our global error handler.

const { asyncErrorHandler } = require('@josephdaw/error-handler');

app.get('/async', asyncErrorHandler(async (req, res, next) => {
    const data = await getData();
    res.json(data);
}));

Issues and Requests

Please report any bugs or feature requests via GitHub Issues.

Security

Please report any security issues to dev@josephdaw.com. Find more information in our Security Policy

Contributing

All development of this project happens through GitHub. We welcome constructive collaboration from the community to help implement new features or fix bugs. For more information please read our Contribution Guide

Changelog

Every significant change is documented in the changelog file.

License

This project is released under the MIT License.

Package Sidebar

Install

npm i @josephdaw/error-handler

Weekly Downloads

33

Version

1.2.2

License

MIT

Unpacked Size

13.4 kB

Total Files

11

Last publish

Collaborators

  • josephdaw