http.request&触摸错误事件后管道不会触发

时间:2014-05-20 19:26:19

标签: javascript node.js http pipe

var http = require('http');

function onRequest(req, res) {
    var headers = req.headers;
    var host = req.headers.host.split(':')

    var options = {
        hostname: host[0],
        port: host[1]===undefined?80:Number(host[1]),
        path: req.url,
        method: 'GET'
    }
    var proxy=http.request(options, function(pres){
        pres.pipe(res, {end: true})
    })
    proxy.on('error', function(err){
        console.log(err);
    })

    req.pipe(proxy, {end:true});
}

http.createServer(onRequest).listen(3000);

我尝试转发http代理,这是我的代码。 我的问题是:当我尝试连接whoer.net(我正在使用firefox)时,在页面源中它包含一些像do-not-exist-domain.com,因此调用'error'事件。在这里,我的浏览器不会停止等待连接数据。 我认为这是因为当调用错误事件时,连接仍然打开,浏览器将等到超时结束。我认为对吗?以及如何解决它:D 谢谢你提前

0 个答案:

没有答案