提问者:小点点

在使用node-fetch时继续获取套接字挂起


我正在尝试获取一个url来获取标题,并确保它返回内容类型,这样我就可以检查以确保它包含“图像”

到目前为止,我只是在一个数据库中循环,以获取图像URL,并将其传递到fetch中,从而获取内容类型。

它跑了那么远,然后得到一个套接字挂起错误。

下面是我要调用的函数

const getImage = async (url) => {
  try {
    const res = await fetch(encodeURI(url));
    console.log(res.headers.get("content-type"));
  } catch (err) {
    console.log(err);
  }
};

但是,过了这么长时间,它开始出错,node-fetch产生以下错误:

FetchError: request to http://www.fakeurl/image.jpg failed, reason: socket hang up

我不知道我做错了什么,我猜服务器是收到太多的请求一次,但不知道如何减慢它或排队到tru再次


共1个答案

匿名用户

这可能有几个原因:

  • 服务器仍在处理之前的请求
  • 您没有在每次调用后关闭端口

我认为你应该做的是:

  • 在数据库满足每个请求后关闭端口。
  • 搜索您的DB提供程序是否有getBatch()选项,您可以立即将所需的所有内容发送到DB,DB会在一个响应中将它们发送给您。