Erroz ramazotti the way you like it.
Create abstract errors with meta-data, stack-traces and speaking error-messages.
By setting a template
property you can define a dynamic-error-message.
The message will be generated by rendering the template
with an object passed on Error construction. i.e. new Error({ resource: "User" });
var erroz = require("erroz");
var NotFoundError = erroz({
name: "NotFound",
code: "not-found",
status: "fail",
statusCode: 404,
template: "%resource (%id) not found"
});
throw new NotFoundError({ resource: "User", id: 1 });
/*
/erroz/examples/customTemplateRenderer.js:22
throw new NotFoundError({ resource: "User", id: 1 });
^
NotFound: User (1) not found
at Object.<anonymous> (/erroz/examples/customTemplateRenderer.js:22:7)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
*/
By setting a message
property you can define a static error message.
var DuplicateError = erroz({
name: "Duplicate",
code: "duplicate",
status: "fail",
statusCode: 409,
message: "Resource already exists"
});
throw new DuplicateError();
/*
throw new DuplicateError();
^
Duplicate: Resource already exists
at Object.<anonymous> (/erroz/examples/staticErrorMessage.js:14:7)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
*/