我已经按照https://www.npmjs.com/package/axios-retry在我的nodejs应用程序中配置了axios重试
以下是我的代码
import axios from 'axios';
import axiosRetry from 'axios-retry';
export class RetryRoute {
public async testRetry(
req: express.Request,
res: express.Response,
next: express.NextFunction,
): Promise<any> {
const client = axios.create({ baseURL: `http://www.test.com/` });
axiosRetry(axios, { retries: 3 });
client.get('/error')
.then(result => {
this.logger.info('success', result);
result.data;
}).catch(error => {
console.log('error', error.message);
error !== undefined
});
}
}
控制台。log('error',error.message);。按预期打印。这意味着调用如预期的那样失败,代码为404。但重试的下一个调用没有发生。
2条答案
按热度按时间acruukt91#
您需要指定重试条件,在代码下面为每个失败的请求重试
nszi6y052#
从https://github.com/softonic/axios-retry
默认情况下,它会在幂等请求(GET、HEAD、OPTIONS、PUT或DELETE)上重试是网络错误还是5xx错误。
http 404状态代码表示请求已成功处理,但无效。在这种情况下,它不会重试,因为它预计重试可能也会失败,几乎可以100%确定。404错误不应该像500错误或网络错误一样是暂时的。