koa2-proxy-middleware

a koa2 proxy middleware by means of http-proxy-middleware

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
koa2-proxy-middleware
0.0.44 years ago5 years agoMinified + gzip package size for koa2-proxy-middleware in KB

Readme

Introduction

A koa2 middleware by means of http-proxy-middleware.
中文

Install

$ npm install --save-dev koa2-proxy-middleware

Usage

This is a very simple usage. If you are familiar with the use of http-proxy-middleware and path-to-regexp.

Example

const Koa = require('koa');
const proxy = require('koa2-proxy-middleware');
const bodyparser = require('koa-bodyparser');

const app = new Koa();

const options = {
  targets: {
    '/user': {
      // this is option of http-proxy-middleware
      target: 'http://localhost:3000', // target host
      changeOrigin: true, // needed for virtual hosted sites
    },
    '/user/:id': {
      target: 'http://localhost:3001',
      changeOrigin: true,
    },
    // (.*) means anything
    '/api/(.*)': {
      target: 'http://10.94.123.123:1234',
      changeOrigin: true,
      pathRewrite: {
        '/passager/xx': '/mPassenger/ee', // rewrite path
      }
    },
  }
}

app.use(proxy(options));


app.use(bodyparser({
  enableTypes:['json', 'form', 'text']
}));

options

{
  targets: {
    [key]: [option],
  },
}

key

The key route that you need to proxy.And through path-to-regexp into regexp. This is mean:
const regexp = pathToRegexp('route-key');
regexp.test(ctx.req.path);

option

The option corresponding to key and like http-proxy-middleware.

Tips

Bodyparser need to after proxy-middleware when request method is POST. Otherwise there will be a delay. I think this is a bug of bodyparser.