Name: fumble
Owner: Yahoo Inc.
Description: Simple error objects in node. Created specifically to be used with https://github.com/yahoo/fetchr and based on https://github.com/hapijs/boom
Created: 2015-02-24 14:02:09.0
Updated: 2016-11-15 01:38:37.0
Pushed: 2016-10-11 22:54:45.0
Homepage: null
Size: 18
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Simple error objects in node. Created specifically to be used with the fetchr library and based on hapi.js' Boom.
fumble = require('fumble');
callAndProcess = require('./callAndProcess');
le.exports = require('api').base.service({
name: 'foo',
read: function (req, resource, params, context, callback) {
switch(resource) {
case this.name:
callAndProcess(req, params, context, callback);
return;
}
var error = fumble.http.create(400, 'Passed in an invalid resource', {
debug: [resource]
});
req.error(error);
req.debug(error.stack); // nice stack trace
/**
* logs:
* { [HttpError: Bad Request] statusCode: 400, message:
* 'Passed in an invalid resource', debug: [ resource ] }
*/
callback(error);
}
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 messagefumble.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 to error.debug
property.error = fumble.http.create(400, 'missing params', { debug: [passedInParams] });
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 to error.debug
property.le.http.badRequest('invalid query');
ssentially 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 to error.debug
property.le.http.unauthorized('not logged in');
ssentially 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 to error.debug
property.le.http.forbidden('top secret');
ssentially 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 to error.debug
property.le.http.notFound('does not exist');
ssentially 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 to error.debug
property.le.http.methodNotAllowed('not allowed');
ssentially 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 to error.debug
property.le.http.proxyAuthenticationRequired('need to login to foo');
ssentially 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 to error.debug
property.le.http.conflict('collision detected');
ssentially 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 to error.debug
property.le.http.gone('bye bye');
ssentially 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 to error.debug
property.le.http.preconditionFailed('missing CLA');
ssentially 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 to error.debug
property.le.http.tooManyRequests('slow down');
ssentially generates
statusCode: 429,
message: 'slow down'
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 to error.debug
property.le.http.internalServerError('unkown error');
ssentially 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 to error.debug
property.le.http.notImplemented('missing enhancement');
ssentially 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 to error.debug
property.le.http.badGateway('mongo error');
ssentially 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 to error.debug
property.le.http.serviceUnavailable('feeds are down');
ssentially generates
statusCode: 503,
message: 'feeds are down'
This software is free to use under the Yahoo Inc. BSD license. See the LICENSE file for license text and copyright information.