在Express Router中使用代理请求api数据会导致断言错误

时间:2018-10-08 04:35:02

标签: node.js proxy request router

router.get('/getBook',function (req,resp,next) {
const proxyUri = req.proxy.getProxy();
console.log(proxyUri);
if(proxyUri){
    console.log(`proxy using : ${proxyUri}`);
    request(
        {uri:`https://api.douban.com/v2/book/isbn/:${req.params.isbn}`,
            proxy: proxyUri.proxy,
            timeout:10000,
            resolveWithFullResponse:true
        }).then(function (res) {
                resp.send(res.body);
            })
          .catch(function(err){
        resp.send(err);});
}
else{
    resq.send("NO Proxy Available");
});

我使用代理请求数据,该请求在其他地方运行时仍有效。当作为路由器的回调函数运行时,出现了此断言错误。

  
    

AssertionError [ERR_ASSERTION]:273 == 0
at ClientRequest.onConnect
    (/home/node/Proxy/node_modules/tunnel-agent/index.js:160:14)
在     Object.onceWrapper(events.js:319:30)在
发射三     (events.js:136:13)
在ClientRequest.emit(events.js:217:7)            
在Socket.socketOnData(_http_client.js:474:11)            
在emitOne(events.js:116:13)            
在Socket.emit(events.js:211:7)            
在addChunk(_stream_visible.js:263:12)            
at addAddunk(_stream_visible.js:250:11)            
在Socket.Readable.push(_stream_visible.js:208:10)            
在TCP.onread(net.js:597:20)

         

错误输出

  

我尝试删除{proxy:proxyUri.proxy}选项并运行代码,它再次起作用。

我不知道,请帮忙。

更新1:我发现此异常仅在尝试读取响应时抛出。

0 个答案:

没有答案