koa-proxies
    TypeScript icon, indicating that this package has built-in type declarations

    0.12.1 • Public • Published

    Koa Proxies

    NPM

    Node.js CI Coverage NPM Downloads Greenkeeper badge

    Koa@2.x/next middlware for http proxy

    Powered by http-proxy.

    Installation

    $ npm install koa-proxies --save

    Options

    http-proxy events

    options.events = {
      error (err, req, res) { },
      proxyReq (proxyReq, req, res) { },
      proxyRes (proxyRes, req, res) { }
    }

    log option

    // enable log
    options.logs = true; // or false
    
    // custom log function
    options.logs = (ctx, target) {
      console.log('%s - %s %s proxy to -> %s', new Date().toISOString(), ctx.req.method, ctx.req.oldPath, new URL(ctx.req.url, target))
    } 

    Usage

    // dependencies
    const Koa = require('koa')
    const proxy = require('koa-proxies')
    const httpsProxyAgent = require('https-proxy-agent')
    
    const app = new Koa()
    
    // middleware
    app.use(proxy('/octocat', {
      target: 'https://api.github.com/users',    
      changeOrigin: true,
      agent: new httpsProxyAgent('http://1.2.3.4:88'), // if you need or just delete this line
      rewrite: path => path.replace(/^\/octocat(\/|\/\w+)?$/, '/vagusx'),
      logs: true
    }))

    Attention

    Please make sure that koa-proxies is in front of koa-bodyparser to avoid this issue 55

    const Koa = require('koa')
    const app = new Koa()
    const proxy = require('koa-proxies')
    const bodyParser = require('koa-bodyparser')
    
    app.use(proxy('/user', {
      target: 'http://example.com',    
      changeOrigin: true
    }))
    
    app.use(bodyParser())

    JavaScript Style Guide

    Install

    npm i koa-proxies

    DownloadsWeekly Downloads

    15,391

    Version

    0.12.1

    License

    MIT

    Unpacked Size

    9.98 kB

    Total Files

    8

    Last publish

    Collaborators

    • vagusx