Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js:某个时间的并行GET请求出现未经处理的错误_Javascript_Node.js_Api_Http_Get - Fatal编程技术网

Javascript Node.js:某个时间的并行GET请求出现未经处理的错误

Javascript Node.js:某个时间的并行GET请求出现未经处理的错误,javascript,node.js,api,http,get,Javascript,Node.js,Api,Http,Get,我正在使用模块向API发送大约100个并行的GET请求。我遇到的问题是在大约80到100次请求上随机出现的,节点抛出此异常: events.js:141 throw er; // Unhandled 'error' event ^ Error: connect ETIMEDOUT 0.0.0.0:80 //a dummy ip at Object.exports._errnoException (util.js:860:11) at exports._e

我正在使用模块向API发送大约100个并行的GET请求。我遇到的问题是在大约
80到100次请求上随机出现的,
节点
抛出此异常:

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT 0.0.0.0:80 //a dummy ip
    at Object.exports._errnoException (util.js:860:11)
    at exports._exceptionWithHostPort (util.js:883:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14)
以下是我的请求默认值:

var apiRequest = request.defaults({

    url : url, //response is in xml format
    headers : {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.8'
    },
    method : 'GET',
    gzip : true,
    encoding : 'utf8',
    pool: {maxSockets: Infinity},
    forever : true,
    timeout : 120000

});

另外,我正在请求使用数组上的循环

修复了我的问题,在错误事件
上递归地请求失败的URL,直到没有超时:

function getAPI(url) {
    var apiRequest = request.defaults({

        url : url,
        headers : {
            'Accept': 'text/html,application/xhtml+xml,application/xml'
        },
        method : 'GET',
        gzip : true
    });

    apiRequest(function (error, response, body) {

    }).on('error', function(e){
        getAPI(this.uri.href);//this is important
    }).end();

}

大约需要多长时间才能找到错误?几分钟?@MattWay是的,大约一两分钟。它的变体。尝试将
超时时间提高一点,看看会发生什么。@RaminOmrani在您这边似乎没有任何问题,您是否检查了这些API是否正确响应?@MattWay再次引发异常