fel
v1.1.10fel
Exports the createError
function that creates an error.
The error has a unique id and a reference to the cause, this is to facilitate with logging.
createError
uses boom.wrap
to decorate the error with boom
properties.
createError
takes the following optional params:
code
HTTP status code >= 400. Defaults to 500.message
Error message. Defaults to the default message forcode
.cause
The cause of the error.root_error_id
Id of the root cause. Defaults tocause.root_error_id || error_id
.stack_from
Function to start stack trace from. Defaults tocreateError
.
The created error has the following properties added to it:
code
HTTP status codemessage
Error messagecause
The causeerror_id
A unique id stringroot_error_id
A unique id stringoutput
See boomdetails
ifcause
is a joi error then thedetails
array is copied. It is also added tooutput.payload
.
Example:
import { createError } from 'fel';
let error = createError();
// error.code == 500
// error.message == 'Internal Server Error'
// error.error_id == (unique id string)
// error.root_error_id == (unique id string)
createError({ code: 400 });
createError({ code: 400, message: 'cannot process the request' });
function readJsonFile(filename, callback) {
fs.readFile(filename, { encoding: 'utf8' }, (err, str) => {
if (err) {
return callback(createError({ cause: err, message: 'Unable to read the file' }));
}
let obj;
try {
obj = JSON.parse(str);
}
catch (json_err) {
return callback(createError({ cause: json_err, message: 'Unable to parse the file' }));
}
callback(null, obj);
});
}