1.0.0 • Published 3 years ago
@riculum/js-errors v1.0.0
JS-Errors
A simple middleware for handling HTTP errors
Install
npm install @riculum/js-errorsExample
Have a look at examples
RouterMiddleware
import express from "express"
import AuthController from "../controllers/AuthController.js";
import {ErrorMiddleware, NotFoundError} from "@riculum/js-errors"
const router = express.Router()
//Define all routes
router.post('/login', AuthController.login)
router.post('/logout', AuthController.logout)
//Throw an error if the URL cannot be resolved
router.use((req, res, next) => {
next(new NotFoundError("The requested url was not found on this server"))
})
//Handles all errors that are passed downwards
router.use(ErrorMiddleware.handleError)
export default routerAuthController
import {UnauthorizedError} from "@riculum/js-errors"
export default class AuthController {
static async login(req, res, next) {
try {
const {email, password} = req.body
//Check if user exists
if (!email || !password) {
throw new UnauthorizedError("email or password are missing")
}
} catch (e) {
//Passing the exception to Error handling
next(e)
}
}
static logout(req, res, next) {
try {
//Do stuff
} catch (e) {
//Passing the exception to Error handling
next(e)
}
}
}List of all errors
| Status Code | Error |
|---|---|
| 400 | BadRequest |
| 401 | Unauthorized |
| 402 | PaymentRequired |
| 403 | Forbidden |
| 404 | NotFound |
| 405 | MethodNotAllowed |
| 406 | NotAcceptable |
| 407 | ProxyAuthenticationRequired |
| 408 | RequestTimeout |
| 409 | Conflict |
| 410 | Gone |
| 411 | LengthRequired |
| 412 | PreconditionFailed |
| 413 | PayloadTooLarge |
| 414 | URITooLong |
| 415 | UnsupportedMediaType |
| 416 | RangeNotSatisfiable |
| 417 | ExpectationFailed |
| 418 | ImATeapot |
| 422 | UnprocessableEntity |
| 425 | TooEarly |
| 426 | UpgradeRequired |
| 428 | PreconditionRequired |
| 429 | TooManyRequests |
| 431 | RequestHeaderFieldsTooLarge |
| 451 | UnavailableForLegalReasons |
| 500 | InternalServerError |
| 501 | NotImplemented |
| 502 | BadGateway |
| 503 | ServiceUnavailable |
| 504 | GatewayTimeout |
| 505 | HTTPVersionNotSupported |
| 506 | VariantAlsoNegotiates |
| 507 | InsufficientStorage |
| 508 | LoopDetected |
| 510 | NotExtended |
| 511 | NetworkAuthenticationRequired |
Bugreport & Contribution
If you find a bug, please either create a ticket in GitHub, or initiate a pull request
Versioning
We adhere to semantic (major.minor.patch) versioning (https://semver.org/). This means that:
- Patch (x.x.patch) versions fix bugs
- Minor (x.minor.x) versions introduce new, backwards compatible features or improve existing code.
- Major (major.x.x) versions introduce radical changes which are not backwards compatible.
In your automation or procedure you can always safely update patch & minor versions without the risk of your application failing.
1.0.0
3 years ago