Skip to content

Instantly share code, notes, and snippets.

@mde
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mde/9216297 to your computer and use it in GitHub Desktop.
Save mde/9216297 to your computer and use it in GitHub Desktop.
Simple Node HTTP proxy
var http = require('http')
, server = http.createServer();
server.on('request', function (serverReq,
serverResp) {
var host = 'www.example.com'
, opts
, clientRequest
, handle;
handle = setTimeout(function () {
serverResp.writeHead(500, {});
serverResp.end('dammit');
}, 5000);
throw new Error('dammit');
serverReq.headers.host = host;
opts = {
host: host
, path: serverReq.url
, headers: serverReq.headers
};
clientReq = http.request(opts);
clientReq.on('response', function (clientResp) {
serverResp.writeHead(clientResp.statusCode,
clientResp.headers);
clientResp.on('data', function (data) {
serverResp.write(data);
});
clientResp.on('end', function () {
clearTimeout(handle);
serverResp.end();
});
});
console.log('requesting ' + serverReq.url);
clientReq.end();
});
server.listen(4000, 'localhost');
process.on('uncaughtException', function (err) {
console.log(err.message);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment