Built with β€οΈ by Hiukky
# Using NPM
npm i http-handler-response
# Using YARN
yarn add http-handler-responseThe http-handler-response provides three main functions. createException, createResponse and handlerError.
The createException function is the function responsible for formulating your return messages in unsuccessful requests. It follows the RFC-7807 standard.
// Object with response specifications
payload: {
code: number | string, // HTTP status code 4xx to 5xx
type?: string, // URL for a document describing the error condition
title?: string, // Short and descriptive information
detail: string, // Legible error description
instance?: string, // URI exclusive for or specific error
}import { createException, handlerError } from 'http-handler-response'
import User from 'models/User'
class UserController {
async index(request, response) {
try {
const user = await User.find(1)
if (!user)
createException({
code: 404, // 404 or '404 - Not Found'
detail: 'The user informed is not registered.',
instance: '/users/1',
type: 'https://example.com/docs/users',
})
return user
} catch (error) {
handlerError(response, error)
}
}
}{
status: 404,
title: 'Not found',
detail: 'The user informed is not registered.',
instance: '/users/1',
type: 'https://example.com/docs/users',
}The createResponse function is the function responsible for formulating your return messages in successful requisitions.
// HTTP Response Object
response: object
// Object with response specifications
payload: {
code: number | string, // HTTP status code 1xx to 3xx
title?: string, // Short and descriptive information
message?: string, // Legible action response
instance: string, // URI exclusive for or specific error
data: object // Back Data
}import { createResponse, handlerError } from 'http-handler-response'
import User from 'models/User'
class UserController {
async store(request, response) {
try {
const data = request.only(['name', 'email'])
const user = new User()
user.name = data.name
user.email = data.email
await user.save()
return createResponse(response, {
code: 201, // 201 or '201 - Created'
message: 'Successful registered user.',
data: user,
}),
} catch (error) {
handlerError(response, error)
}
}
}{
status: 201,
title: 'Created'
message: 'Successful registered user.'
data: {
id: 1,
name: 'User',
email: '[email protected]'
}
}http-handler-response has custom handlers for handling errors for various web frameworks, such as AdonisJs, Express and KoaJs. You can use it within your catch block on each call or create custom middleware responsible for handling exceptions globally in the HTTP context.
import { handlerError } from 'http-handler-response'
import User from 'models/User'
class UserController {
async store(request, response) {
try {
// Your code..
} catch (error) {
handlerError(response, error)
}
}
}