fumble
Simple error objects in node. Created specifically to be used with the fetchr library and based on hapi.js' Boom.
Usage
var fumble = ; var callAndProcess = ; moduleexports = base;
API Docs
fumble.http
provides a set of utilities for returning HTTP errors. Each method returns an HttpError
instance, which itself extends the native Error
class (which means you can access the stack
prop on your error instance). Each error has the following two props
statusCode
{Number} - the HTTP status code (typically 4xx or 5xx).message
{String} - the error message
fumble.http.create ([status=500], [message='Internal Server Error'], [options])
Generate an HttpError
object where
statusCode
- an HTTP error code number. Must be greater or equal 400message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
var error = fumblehttp;
HTTP 4xx Errors
fumble.http.badRequest ([message='Bad Request'], [options])
returns an HTTP status code of 400
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 400 message: 'invalid query'
===
fumble.http.unauthorized ([message='Unauthorized'], [options])
returns an HTTP status code of 401
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 401 message: 'not logged in'
===
fumble.http.forbidden ([message='Forbidden'], [options])
returns an HTTP status code of 403
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 403 message: 'top secret'
===
fumble.http.notFound ([message='Not Found'], [options])
returns an HTTP status code of 404
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 404 message: 'does not exist'
===
fumble.http.methodNotAllowed ([message='Method Not Allowed'], [options])
returns an HTTP status code of 405
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 405 message: 'not allowed'
===
fumble.http.proxyAuthenticationRequired ([message='Proxy Authentication Required'], [options])
returns an HTTP status code of 407
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 407 message: 'need to login to foo'
===
fumble.http.conflict ([message='Conflict'], [options])
returns an HTTP status code of 409
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 409 message: 'collision detected'
===
fumble.http.gone ([message='Gone'], [options])
returns an HTTP status code of 410
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 410 message: 'bye bye'
fumble.http.preconditionFailed ([message='Precondition Failed'], [options])
returns an HTTP status code of 412
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 412 message: 'missing CLA'
===
fumble.http.tooManyRequests ([message='Too Many Requests'], [options])
returns an HTTP status code of 429
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 429 message: 'slow down'
HTTP 5xx Errors
fumble.http.internalServerError ([message='Internal Server Error'], [options])
returns an HTTP status code of 500
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 500 message: 'unknown error'
===
fumble.http.notImplemented ([message='Not Implemented'], [options])
returns an HTTP status code of 501
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 501 message: 'missing enhancement'
===
fumble.http.badGateway ([message='Bad Gateway'], [options])
returns an HTTP status code of 502
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 502 message: 'mongo error'
===
fumble.http.serviceUnavailable ([message='Service Unavailable'], [options])
returns an HTTP status code of 503
message
- optional message string.options
- extra optionsoptions.debug
- additional error debug info set toerror.debug
property.
fumblehttp; // essentially generates statusCode: 503 message: 'feeds are down'
License
This software is free to use under the Yahoo Inc. BSD license. See the LICENSE file for license text and copyright information.