Shoulder.dev Logo Shoulder.dev

http-errors - benhall/express-demo

Go to Shoulder Page

HTTP errors are essential for handling and communicating various types of errors in web applications. One popular and versatile library for creating HTTP errors in Node.js projects is http-errors. In this guide, we’ll explain why you might want to use http-errors and provide an example of how to use it.

Description

http-errors is a Node.js module that makes it easy to create HTTP error objects for Express, Koa, Connect, and other frameworks. The latest version is 2.0.0, and it was last published 2 years ago. You can install it by running npm i http-errors. There are currently 3,558 other projects in the npm registry using http-errors.

Why Use HTTP Errors?

HTTP errors provide a standardized way to communicate errors to clients. They include a status code, a message, and sometimes custom properties. By using HTTP errors, you can make your API responses more consistent and easier to understand for developers and clients.

Installation and Example

First, install http-errors using npm:

$ npm install http-errors

Next, import the createError function from http-errors and use it to create HTTP errors in your Express application:

const express = require('express');
const createError = require('http-errors');

const app = express();

app.use((req, res, next) => {
if (!req.user) {
return next(createError(401, 'Please login to view this page.'));
}
next();
});

In this example, we use createError to create a 401 Unauthorized error when the user is not authenticated.

API

http-errors provides a simple API for creating HTTP errors. The following properties are available on each error object:

  • expose: A boolean indicating whether the error message should be sent to the client. Defaults to false when the status code is 500 or higher.
  • headers: An optional object of header names and values to be sent to the client.
  • message: The error message, which should be kept short and all single line.
  • status: The status code of the error.
  • statusCode: The status code of the error, which defaults to 500.

You can create a new error object using the createError function:

const err = createError(404, 'This video does not exist!');

Or, you can extend an existing error object with createError:

fs.readFile('foo.txt', (err, buf) => {
if (err) {
if (err.code === 'ENOENT') {
const httpError = createError(404, err, { expose: false });
} else {
const httpError = createError(500, err);
}
}
});

Conclusion

http-errors is a simple and versatile library for creating HTTP errors in Node.js projects. It provides a consistent way to communicate errors to clients and makes it easy to create custom error messages and headers. To get started, install http-errors using npm and start creating HTTP errors in your application.