@smarterservices/error-response
v0.0.1
Published
This is a module to format error
Downloads
40
Keywords
Readme
Error Response
Introduction
This module is used to format the error and send user defined error in response.
Installation
Requirements
Install Process
- Clone project into your working directory.
- Open a
terminal
in your projectroot directory
. - Run
npm install
to install necessary dependencies.
Configuration
- In your project directory, under
config/errors
subdirectory, list errors indefined-erros.json
in following structure
{
"JOI": {
"ERROR_NAME": {
"code": "4000",
"message": "Joi related error message"
}
},
"ERROR_NAME": {
"code": "6000",
"message": "The error message to attach"
}
}
All joi related errors will be listed under JOI
object and other general errors will be listed as shown in the structure.
- In your project directory, go to
config
subdirectory and modify the following things in configuration file (i.edefault.json
).- Set
url
to attach additional url in Response - Set
printError
to true if you want to print error from module
- Set
For example, your configuration may look like as follows:
{
"errorResponse": {
"url": "https://www.smarterservices.com/errors/",
"printError": false
}
}
Running Application/Code
- require module from anywhere
- use
formatError
to format the error
const errorResponse = require('error-response');
const options = {
values: {
approvalSid: 'AP...',
installSid: 'AI...'
}
};
const error = errorResponse.formatError('APPROVAL_NOT_FOUND_UNDER_INSTALL', options);
To generate the above error, the error object should be as follows
{
"APPROVAL_NOT_FOUND_UNDER_INSTALL": {
"code": "6001",
"message": "approval '%approvalSid%' not found under '%installSid%'",
"status": 404
}
}
- Here
approvalSid
will be replaced by the given inoptions
object. - Default
statusCode
is 400, passing status in error object will override the defaultstatusCode
. - It also expose
errorResponse.failAction
to wrapjoi
related error.
Running Locally
n/a
Running in Production
n/a
External Dependencies
n/a
Deployment
- n/a
Cronjobs
- n/a