nestjs 与 axios,处理连接 ENETUNREACH

nestjs with axios, handling connect ENETUNREACH

我是 nestjs 的新手。

我正在构建一个应用程序,它从其他设备获取图像。但是,设备的互联网连接不稳定。有时,它会产生类似

的错误

[Nest] 30899 - 02/04/2022,8:09:25 下午错误 [ExceptionsHandler] 连接 ENETUNREACH 0.0.0.0:11 错误:连接 ENETUNREACH 0.0.0.0:11

当错误发生时,axios函数的下面几行没有被执行,我想避免这种情况。

因此,我想知道如何捕获这个错误来处理(try catch 块不适用于这种情况)。

这是我的代码以防万一。

try {
        const response: AxiosResponse = await this.httpService.axiosRef({
          url: `http://${cam.publicIP}:${cam.webPort}/capture`,
          method: 'GET',
          responseType: 'arraybuffer',
          timeout: 1500,
        })
        const buffer = Buffer.from(response.data, "utf-8");
        const resized = await sharp(buffer).extract({
          left: 100,
          top: 0,
          width: 600,
          height: 600,
        }).resize().toBuffer();
        const imageUrl = await this.storageService.upload('images', {
          name: imageName,
          buffer: resized
        });
        console.log(imageUrl);

        snapshot.imageUrl = imageUrl;
        // await snapshot.save();
        console.log(snapshot.id);


      } catch (error) {
        this.logger.debug(error);
      }

0.0.0.0 不是有效的 IP 地址。从历史上看,它已用于在绑定到本地端口以接受传入连接时指定所有本地 IP 地址。一些 OS/clients/stacks 将其扩展为本地主机,但您不应期望它总是有效。如果要连接到本地主机,请使用 127.0.0.1

如果 axios 抛出此错误,您的代码没有理由不捕获此错误。检查错误是在哪里抛出的 - 它可能是在其他地方抛出的。