我正在尝试编写一个简单的node.js程序,它代理请求并将响应写入文件。我正在使用http-proxy进行代理。 当我尝试将响应传递给文件(或用于测试的process.stdout)时,它是空/零字节。我不确定为什么,但我认为可能是因为流已经关闭,因为响应已经发送回客户端。
我怎样才能让它发挥作用?
var httpProxy = require('http-proxy');
var fs = require('fs');
var server = httpProxy.createServer(function (req, res, proxy) {
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 80
});
});
server.proxy.on('end', function (response) {
response.pipe(process.stdout); // NOTHING IS WRITTEN TO THE STDOUT
});
server.listen(8000);
答案 0 :(得分:2)
尝试类似
的内容 var http = require('http'),
httpProxy = require('http-proxy');
var proxy = new httpProxy.RoutingProxy();
http.createServer(function (req, res) {
var _write = res.write;
res.write = function(data){
process.stdout.write(data); // here we get all incoming data
_write.apply(this, arguments);
}
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 80
});
}).listen(8000);