0.10.0 • Published 5 years ago
http-handler-response v0.10.0
Installation
# Using NPM
npm i http-handler-response
# Using YARN
yarn add http-handler-responseUsing
The http-handler-response provides three main functions. createException, createResponse and handlerError.
createException
The createException function is the function responsible for formulating your return messages in unsuccessful requests. It follows the RFC-7807 standard.
Parameters
// 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
}Example
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)
}
}
}Response
{
status: 404,
title: 'Not found',
detail: 'The user informed is not registered.',
instance: '/users/1',
type: 'https://example.com/docs/users',
}createResponse
The createResponse function is the function responsible for formulating your return messages in successful requisitions.
Parameters
// 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
}Example
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)
}
}
}Response
{
status: 201,
title: 'Created'
message: 'Successful registered user.'
data: {
id: 1,
name: 'User',
email: 'user@email.com'
}
}handlerError
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.
Example
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)
}
}
}