Skip to content

More easier and organized way of creating a proxy.

Notifications You must be signed in to change notification settings

wildone/node-proxy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

Node.js Proxy

More easier and organized way of creating a proxy.

Example:

var http = require('http'),
    proxy = require('./proxy');

http.createServer((req, res) => proxy({
    url(req){
        return 'https://example.org' + req.url;
    },
    request(data){
        if (data.clientRequest.url == '/test') return data.clientResponse.end('Access denied!');
    },
    response(data){
        data.removeCompression();
        if (data.clientRequest.url == '/cat') data.body = data.body.toString().replace('Example Domain', 'Cats are awesome!');
    },
})(req, res)).listen(8080);

API:

{
    url(clientRequest){ // URL handler. Returns URL used in the request.
        return 'https://example.org' + clientRequest.url;
    },
    request(data){ // Remote request handler. 
        data.url; // URL instance.
        data.headers; // Headers sent in request.
        data.body; // Request body, returns null if none.
        data.clientRequest; // HTTP Client Request object.
        data.clientResponse; // HTTP Client Response object.
    },
    response(data){ // Remote response handler.
        data.url; // URL instance.
        data.headers; // Headers received from response.
        data.body; // Response body, returns null if none.
        data.clientRequest; // HTTP Client Request object.
        data.clientResponse; // HTTP Client Response object.
        data.remoteResponse; // HTTP Remote Response object.
        data.removeCompression(); // Removes Content-Encoding compression & Content-Length response header.
        data.removePolicies(); // Removes X-Frame-Options, Content-Security-Policy, Content-Security-Policy-Report-Only, and Strict-Transport-Security response headers.
    }, // Error handler.
    error(data){
        data.clientRequest; // HTTP Client Request object.
        data.clientResponse; // HTTP Client Response object.
        data.error; // Error object.
    },
}

About

More easier and organized way of creating a proxy.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%