This package has been deprecated

Author message:

No longer maintained.

fi-errors

2.2.4 • Public • Published

Fi Errors Build Status

An ExpressJS middleware to handle custom errors.

Requirements:

  • NodeJS 6.x.x

Installation

npm install --save fi-errors

Configuration

The first step is to create your configuration file. Here you can define your custom errors, redirection urls and excluded requests.

This package comes with a default configuration that you can extend or overwrite.

Sample configuration file

const config = {
  // Custom application errors
  errors: [
    // This error will be added to the component errors list
    {
      name: 'EnhanceYourCalmError',
      message: 'Breath in... Breath out...'
      code: 420
    },

    // This errors will overwrite the default errors with new messages
    {
      name: 'BadRequestError',
      message: 'The request could not be understood by the server due to malformed syntax.'
      code: 400
    }, {
      name: 'ConflictError',
      message: 'This document is already registered.',
      code: 409
    }
  ],

   // Application custom error handlers
  handlers: {
    // Handle validations errors with BadRequestError
    'ValidationError': 'BadRequestError',

    // Handle errors with code 11000 with MongoDuplicatedError
    '11000': 'DuplicatedEntityError'
  },

  // Every failed HTTP request to this urls will be terminated
  exclude: /^\/(assets|api)\//i,

  // Redirection urls
  redirect: {
    error: '/error?err=',
    lost: '/lost?url='
  },

  // Function to use for debugging
  debug: err => {
    console.log('START ERROR LOG:', new Date());
    console.log(err);
    console.log('END ERROR LOG:', new Date());
  },

  // Condition to debug an error
  shouldDebug: err => err.code > 399

};

Usage

To use the package you must configure it and then bind it to the express application.

Binding the component

const errors = require('fi-errors');
const express = require('express');
const app = express();

// Configure the module
errors.config(config);

// Register other middlewares
// app.use(...);

// Optionally, use the fi-errors not found (404) middleware
app.use(errors.notFoundMiddleware);

// Lastly, bind the fi-errors handler
app.use(errors.handler);

Using the component

const errors = require('fi-errors');

const { BadRequestError } = errors;

  module.exports = (router, db) => {

  const User = db.model('user');

  /**
   * Creates a user.
   */
  router.post('/', (req, res, next) => {

    User.create(req.body)

      .then(user => {
        if (!user) {
          throw new BadRequestError('The user could not be created');
        }

        res.status(HTTP_CODE_CREATED).json(user._id);
      })

      // Any ValidationError catched here will be handled with BadRequestError.
      // Any error with code 11000 catched here will be handled with
      // DuplicatedEntityError.
      .catch(next);

  });

});

Every error triggered in a middleware will be catched inside the component.

Documentation

Read the library docs for the methods specification.

Package Sidebar

Install

npm i fi-errors

Weekly Downloads

2

Version

2.2.4

License

MIT

Unpacked Size

19.4 kB

Total Files

10

Last publish

Collaborators

  • stgogm
  • leonardo.ramos