https://github.com/one-com/node-httperrors
Handy JavaScript Error classes representing the standard HTTP errors. Easily extensible and subclassable.
https://github.com/one-com/node-httperrors
Last synced: about 1 month ago
JSON representation
Handy JavaScript Error classes representing the standard HTTP errors. Easily extensible and subclassable.
- Host: GitHub
- URL: https://github.com/one-com/node-httperrors
- Owner: One-com
- License: bsd-3-clause
- Created: 2012-02-23T14:35:03.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2023-04-14T19:18:52.000Z (about 2 years ago)
- Last Synced: 2025-04-14T09:07:39.472Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 145 KB
- Stars: 31
- Watchers: 15
- Forks: 4
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
node-httperrors
===============Exposes HTTP 4xx and 5xx status codes as JavaScript Error objects. The error classes are created using the createError module.
The original use case for `httpErrors` is to use a custom express error handler that uses the `statusCode` property of the error instance as the status code for the response, and optionally logs further info from the error.
Installation
------------Make sure you have node.js and npm installed, then run:
npm install httperrors
Usage
-----var httpErrors = require('httperrors');
// Instatiate by status code:
var myError = httpErrors(412);// Instantiate by name (UpperCamelCase):
var err = new httpErrors.NotFound('The thing you were looking for was not found');console.warn(err.toString()); // NotFound [404]: The thing you were looking for was not found
if (identityCrisis) {
throw new httpErrors.ImATeapot('Dude...');
}The CamelCased error name is exposed as a true property on the
instances, so your error handling code becomes quite readable (and you
can avoid using instanceof):if (err.NotFound) {
// ...
} else if (err.BadGateway) {
// ...
}You can also create an error by status code (useful when proxying):
function fetchSomething(cb) {
var request = require('request');
request('http://example.com/thething', function (err, response) {
if (err) {
return cb(new (httpErrors[response.statusCode] || httpErrors.BadGateway)());
}
// ...
});
}License
-------3-clause BSD license -- see the `LICENSE` file for details.