使用 async axios 获取服务器错误响应

时间:2021-02-03 15:31:12

标签: node.js axios

我正在尝试在异步上下文中使用 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;

1 个答案:

答案 0 :(得分:0)

只需将错误返回到 res 变量,如果可能,植入错误代码索引,确定是 4xx 还是 5xx,获取详细信息,设置消息并以:

return res.status(erros[errorCodeIndex]['status']).send(JSON.parse(`{detail: ${errors[errorCodeIndex]['message']`})}

如果可能,将错误代码和错误消息 JSON 解析为一个变量,以避免出现复杂的行。

通常,我会创建一个 handleResponse 函数来处理它,但您可以记录错误并抛出带有详细信息的消息,catch 块将处理错误响应。