我使用nodejs创建了一个简单的代理,但在管道之前修改响应有一点问题......
例如我有这段代码:
http.createServer(function (req, res) {
//console.log('Proxying url ['+req.url+']');
if ((req.url.indexOf('http://xxxxxxx') !== -1) || (req.url.indexOf('http://xxxxx') !== -1) || (req.url === 'http:/xxxxx')) {
req.pause();
var options = url.parse(req.url);
options.headers = req.headers;
options.method = req.method;
options.agent = false;
var connector = http.request(options, function(serverResponse) {
serverResponse.pause();
serverResponse.on('error', function(err){
res.send({error: err.message});
});
res.writeHeader(serverResponse.statusCode, serverResponse.headers);
txt = '';
if (req.url === "x") {
serverResponse.on('data', function(data){
txt += data.toString();
});
serverResponse.on('end', function(){
//HOW CAN I PIPE THIS (the txt var) BUT MODIFIED????
//console.log(txt);
});
}
serverResponse.pipe(res);
serverResponse.resume();
});
req.pipe(connector);
req.resume();
}
else {
req.pipe(request(req.url)).pipe(res);
}
})
.listen(port);
console.log('Proxy running on port ' + port);
一切正常,但我如何修改然后管道收到的数据呢?