在管道之前修改nodejs代理中的http.request主体

时间:2013-12-16 20:50:11

标签: javascript node.js

我使用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);

一切正常,但我如何修改然后管道收到的数据呢?

0 个答案:

没有答案