0.10.0 • Published 4 months ago

api-request-handler v0.10.0

Weekly downloads
5
License
MIT
Repository
github
Last release
4 months ago

api-request-handler

API Request Handler

Installation

$ npm install api-request-handler

Usage

handleResponse

  • handleResponse (callback)
  • handleResponse (callback, callback2)
  • handleResponse (callback, callback2)

errorMessageProvider

  • apiHandler.errorMessageProvider = customErrorMessageProvider

Hooks

  • apiHandler.preJson = preJsonHookFn
  • apiHandler.postJson = postJsonHookFn
  • apiHandler.preError = preErrorHookFn
  • apiHandler.postError = postErrorHookFn

Example

const http = require('http');
const express = require('express');

const apiHandler = require('api-request-handler');
const baseUrl = 'http://localhost:8080';

const handleResponse = apiHandler.handleResponse;

const app = express();
app.set('port', 8080);
const server = http.createServer(app);
server.listen(8080);

// Single Middleware
app.get('/single-middleware', handleResponse(fnApple)); // apple; status 200

// Multiple Middlewares
app.get('/multiple-middlewares', handleResponse(fnAppleNext, fnPear)); // pear; status 200

// Multiple Middlewares Array
app.get('/multiple-middlewares-array', handleResponse([fnAppleNext, fnPear])); // pear; status 200

// Multiple Async Middlewares
app.get('/multiple-async-middlewares', handleResponse(fnAppleNext, fnPearPromise)); // pear; status 200

// Error Handling
app.get('/error-handling', handleResponse(fnAppleNext, fnError1, fnPear)); // error1; status 422

// Async Error Handling
app.get('/async-error-handling', handleResponse(fnAppleNext, fnError1Promise, fnPear)); // error1; status 422

// Multiple Async Error Handling
app.get('/multiple-async-error-handling', handleResponse(fnError2Next, fnError1)); // error1; status 422

// Custom Error Message Provider
apiHandler.errorMessageProvider = function (err) {
  return 'customError';
};
app.get('/custom-error-message-provider', handleResponse(fnError1)); // customError; status 422

function fnApple(req, res, next) {
  return 'apple';
}

function fnApplePromise(req, res, next) {
  return Promise.resolve('apple');
}

function fnAppleNext(req, res, next) {
  next();
  return 'apple';
}

function fnPear(req, res, next) {
  return 'pear';
}

function fnPearPromise(req, res, next) {
  return Promise.resolve('pear');
}

function fnPearNext(req, res, next) {
  next();
  return Promise.resolve('pear');
}

function fnError1(req, res, next) {
  throw new Error('error1');
}

function fnError1Promise(req, res, next) {
  return Promise.reject(new Error('error1'));
}

function fnError2Next(req, res, next) {
  next();
  throw new Error('error2');
}

MIT Licensed

0.10.0

4 months ago

0.9.0

4 months ago

0.8.5

9 months ago

0.8.4

9 months ago

0.8.7

9 months ago

0.8.6

9 months ago

0.8.3

10 months ago

0.7.2

2 years ago

0.6.2

2 years ago

0.8.2

2 years ago

0.5.2

2 years ago

0.5.1

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.3.1

3 years ago

0.3.0

5 years ago