What is boom?
The boom npm package is a set of utilities for returning HTTP errors. It is part of the hapi ecosystem and provides a way to send error responses that include a friendly error message, the correct HTTP status code, and any additional error information.
What are boom's main functionalities?
Creating HTTP-friendly error objects
Boom allows you to create error objects that are suitable for HTTP responses. For example, you can create a 400 Bad Request error using Boom.badRequest('Invalid request payload input').
{"statusCode": 400, "error": "Bad Request", "message": "Invalid request payload input"}
Decorating error objects
Boom provides a way to decorate error objects with additional information. You can add custom data to an error using Boom.badRequest('Invalid request payload input').data({ custom: 'info' }).
{"statusCode": 400, "error": "Bad Request", "message": "Invalid request payload input", "data": {"custom": "info"}}
Generating errors for various HTTP status codes
Boom has methods for generating errors corresponding to most HTTP status codes, such as Boom.notFound('Resource not found') for a 404 error, or Boom.internal('An internal server error occurred') for a 500 error.
[{"statusCode": 404, "error": "Not Found", "message": "Resource not found"}, {"statusCode": 500, "error": "Internal Server Error", "message": "An internal server error occurred"}]
Other packages similar to boom
http-errors
The http-errors package is similar to boom in that it allows you to create HTTP error objects. It is middleware-friendly and can be used with frameworks like Express. Unlike boom, it does not have a dependency on the hapi ecosystem.
api-error-handler
api-error-handler is an Express middleware for handling API errors. It formats error responses in a consistent structure. While it is similar to boom in handling errors, it is specifically designed for Express and is used as middleware rather than a standalone error object generator.