The method your are using is for after the response I guess. The need to use the proxyReq
event
var httpProxy = require('http-proxy');
const url = require('url');
proxy = httpProxy.createServer({
target: 'https://httpbin.org',
secure: false
}).listen(8009);
proxy.on('proxyReq', function(proxyReq, req, res, options) {
parsed = url.parse(proxyReq.path, true);
parsed.query['limit'] = 2
updated_path = url.format({pathname: parsed.pathname, query: parsed.query});
proxyReq.path = updated_path
proxyReq.setHeader('X-Special-Proxy-Header', 'foobar');
});
and the results
$ curl "http://localhost:8009/get?x=yz2"
{
"args": {
"limit": "2",
"x": "yz2"
},
"headers": {
"Accept": "*/*",
"Host": "localhost",
"User-Agent": "curl/7.54.0",
"X-Special-Proxy-Header": "foobar"
},
"origin": "36.255.84.232, 36.255.84.232",
"url": "https://localhost/get?x=yz2&limit=2"
}