Wondering what’s next for npm?Check out our public roadmap! »

    koa-proxy
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/koa-proxy package

    1.0.0-alpha.3 • Public • Published

    koa-proxy Build Status

    Proxy middleware for koa


    Install

    $ npm install koa-proxy -S
    

    Usage

    When you request http://localhost:3000/index.js, it will fetch http://alicdn.com/index.js and return.

    var koa = require('koa');
    var proxy = require('koa-proxy');
    var app = koa();
    app.use(proxy({
      host: 'http://alicdn.com'
    }));
    app.listen(3000);

    You can proxy a specified url.

    app.get('index.js', proxy({
      url: 'http://alicdn.com/index.js'
    }));

    You can specify a key/value object that can map your request's path to the other.

    app.get('index.js', proxy({
      host: 'http://alicdn.com',
      map: {
        'index.js': 'index-1.js'
      }
    }));

    You can specify a function that can map your request's path to the desired destination.

    app.get('index.js', proxy({
      host: 'http://alicdn.com',
      map: function(path) { return 'public/' + path; }
    }));

    You can specify match criteria to restrict proxy calls to a given path.

    app.use(proxy({
      host:  'http://alicdn.com', // proxy alicdn.com...
      match: /^\/static\//        // ...just the /static folder
    }));

    Or you can use match to exclude a specific path.

    app.use(proxy({
      host:  'http://alicdn.com',     // proxy alicdn.com...
      match: /^(?!\/dontproxy\.html)/ // ...everything except /dontproxy.html
    }));

    Proxy won't send cookie to real server, you can set jar = true to send it.

    app.use(proxy({
      jar: true,
    }));

    Proxy won't send 'foo' and 'bar' headers to real server, or recieve 'jar-jar' from real server.

    app.use(proxy({
      suppressRequestHeaders: ['foo','bar'], // case-insensitive
      suppressResponseHeaders: ['jar-jar'] // case-insensitive
    }));

    You can also add new headers to your response or override existing ones

    app.use(proxy({
      overrideResponseHeaders: {
        "cow": "moo",
        "duck": "quack"
        }, 
    }));

    LICENSE

    Copyright (c) 2014 popomore. Licensed under the MIT license.

    Install

    npm i koa-proxy

    DownloadsWeekly Downloads

    10,036

    Version

    1.0.0-alpha.3

    License

    MIT

    Unpacked Size

    8.77 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar