我正在尝试在异步上下文中使用 axios。但是我如何做到这一点,以便当我收到错误状态 (4xx/5xx) 时,我可以抛出从服务器返回的消息,而不是 axios 返回的标准 javascript 错误。
服务器始终返回的错误格式为 {detail: MESSAGE}
,并且是状态为 4xx/5xx 的响应。
const res = await axios(options).catch((err) => {
console.error('error', err.detail);
throw err;
});
return res.data;
答案 0 :(得分:0)
只需将错误返回到 res 变量,如果可能,植入错误代码索引,确定是 4xx 还是 5xx,获取详细信息,设置消息并以:
return res.status(erros[errorCodeIndex]['status']).send(JSON.parse(`{detail: ${errors[errorCodeIndex]['message']`})}
如果可能,将错误代码和错误消息 JSON 解析为一个变量,以避免出现复杂的行。
通常,我会创建一个 handleResponse 函数来处理它,但您可以记录错误并抛出带有详细信息的消息,catch 块将处理错误响应。