流错误处理



我正在使用流请求。对于流来说,我不确定处理错误的最佳方法是什么。具体来说,这个请求可能会发送一个403,我想捕获它,如果有错误,则不发送管道响应。

got.stream(url)
.on("error", (e) => {
    console.log(e)
})
.pipe(res)

在本例中,即使响应返回403,响应仍将通过管道传输到res。防止响应被管道化的正确方法是什么,或者是否有更好或更习惯的方法来做到这一点?

我尝试了你的代码与url指向我的博客。然而,如果在got实例上调用pipe,似乎并不关心error事件是否被触发。

那么,这里是解决方法:

got.stream(url)
  .on('response', response => {
    response.pipe(res); // pipe to express's res.
  })
  .on('error', err => {
    // handle error
  });

与直接从got对象调用pipe不同,您可以侦听响应事件以将您获得的响应管道传输到另一个响应流。

相关内容

  • 没有找到相关文章

最新更新