err-fixit
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

err-fixit

Overview

err-fixit is a lightweight and efficient npm package for handling various types of errors in a MERN stack application. It provides structured error responses for MongoDB, Express and general application errors. This package is designed to work seamlessly with both CommonJS and ES Modules.

Features

  • Handles duplicate key errors from MongoDB
  • Handles Mongoose validation errors
  • Handles cast errors (invalid ObjectId and so on)
  • Provides a structured response with a status: false field
  • Supports both CommonJS (require) and ES Modules (import)

Supported Errors

Error Type Description
Duplicate Key Error (code: 11000) Happens when inserting a duplicate value in a unique field.
CastError Occurs when an invalid ObjectId or incorrect type is used.
ValidationError Mongoose validation errors.
Unknown Error Any other unhandled errors.

Installation

To install the package run:

npm i err-fixit

Usage

For CommonJS (require)

const express = require("express");
const { errorHandler } = require("err-fixit");

const app = express();

app.get("/", (req, res, next) => {
  const error = new Error("something went wrong!");
  next(error);
});

app.use((err, req, res, next) => {
  const errorResponse = errorHandler(err);
  return res.status(errorResponse.errorCode || 500).json(errorResponse);
});

app.listen(3000, () => console.log("Server running on port 3000"));

For ES Modules (import)

First, ensure your package.json includes:

{
  "type": "module"
}

Then, use the following code:

import express from "express";
import { errorHandler } from "err-fixit";

const app = express();

app.get("/", (req, res, next) => {
  const error = new Error("something went wrong");
  next(error);
});

app.use((err, req, res, next) => {
  const errorResponse = errorHandler(err);
  return res.status(errorResponse.errorCode || 500).json(errorResponse);
});

app.listen(3000, () => console.log("Server running on port 3000"));

Error Handling Details

Duplicate Key Error (MongoDB)

If a duplicate key error occurs (e.g. a unique field constraint violation) the package will return:

{
  "status": false,
  "message": "'email' must be unique",
  "field": "email",
  "errorCode": 11000
}

Cast Error (Invalid ObjectId)

If an invalid ObjectId is used in a MongoDB query, the package will return:

{
  "status": false,
  "message": "invalid value provided for field '_id'",
  "field": "_id",
  "errorCode": 400
}

Validation Error

If Mongoose validation fails, the package will return:

{
  "status": false,
  "message": "validation failed",
  "errors": [
    {
      "field": "email",
      "message": "email is required"
    }
  ],
  "errorCode": 400
}

Unknown Errors

If an unknown error occurs, the package provides a general response:

{
  "status": false,
  "message": "an unknown error occurred",
  "errorCode": 500
}

License

This package is released under the MIT License.

Author

Created by Khaled Md Saifullah

Contributing

Contributions are welcome! Feel free to submit a pull request or open an issue on GitHub.

Package Sidebar

Install

npm i err-fixit

Weekly Downloads

3

Version

1.0.1

License

MIT

Unpacked Size

7.81 kB

Total Files

4

Last publish

Collaborators

  • kmsaifullah