Skip to content

nicky9112/exproxy

Repository files navigation

exproxy

Build StatusCoverage Status

exproxy is designed to be the simplest way possible to make proxy http calls. It build from express router and just need some config file you will make proxy server.

Install

yarn

yarn add @nicky9112/exproxy

npm

npm i @nicky9112/exproxy --save

Usage

app.js

var express = require('express'),
    exproxy = require('@nicky9112/exproxy'),
    
    app = express(),
    router = express.Router(),
    config = {
		// eg: path.resolve('./proxy-router') + '/**.json'
		routePath: '$YOUR_ROUTER_PATH/**.js*', 
		// or
		routeFiles: [
			'/$YOUR_ROUTER_PATH/xx.js',
			'/$YOUR_ROUTER_PATH/xxx.json'
		],
		mock: true, // enable mock if true mockRouterPath parameter is require
		// eg: path.resolve('./proxy-router-mock') + '/**.json'
		mockRoutePath: '$YOUR_MOCK_ROUTER_PATH/**.js*',
		apiMap: { // required
      		data: 'http://127.0.0.1:5000',
      		other: 'http://127.0.0.1:6000'
    	}
	};

// some other middlewares eg: body-parser ...

app.use(exproxy(router, config));

app.listen(3000);

proxy router *.json or *.js

[
  {
    "url": "/users/:id",
    "target": "/users/:id",
    "api": "data",
    "method": "GET",
    "desc": "user detail"
  },
  {
    "url": "/users",
    "target": "/users",
    "api": "data",
    "method": "POST",
    "desc": "add user"
  },
  {
    "url": "/users/:id/other",
    "target": "/users/:id/other",
    "api": "data",
    "method": "GET",
    "desc": "user detail"
  }
]

mock proxy router *.js or *.json

module.exports = [
  {
    url: '/users/:id/other', // should mapping proxy route url
    method: 'GET',
    mockData: { // everything you like
      user: true
    }
  }
];

exproxy will read routePath or routeFiles and concat each item to make a express route.

now request your app server will forward data api that you declare in *.js*.

Licence

MIT

About

express http proxy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published