nestjs与axios,处理连接ENETUNEREACH



我对nestjs还很陌生。

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

〔Nest〕30899-02/04/2022,8:09:25 PM错误〔ExceptionsHandler〕connect ENETUNEREACH 0.0.0.0:11错误:连接ENETUNEREACH 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地址。一些操作系统/客户端/堆栈已经将其扩展为本地主机,但您不应该期望它始终有效。如果要连接到本地主机,请使用127.0.0.1

如果这个错误是由axios抛出的,那么您的代码就没有理由不捕捉到它。检查错误是从哪里抛出的——它可能是从其他地方抛出的。

最新更新