我的应用程序从react向nestjs服务器请求axios,代码在这里。
const loginEvent = async (id, password) => {
try {
const res = await (await axios.post('users/login', { id, password })).data;
if (res.success) {
...
} else {
...
}
} catch (err) {
console.log('Login Err ', err);
}
};
在《 Postman 》中,我可以恰当地看到信息和成功。
{
"success": false,
"statusCode": 400,
"timestamp": "2022-05-17T11:50:16.676Z",
"path": "/users/login",
"message": [
"id should not be empty"
],
"error": "Bad Request"
}
但是,React中只显示简短的错误消息。
POST http://localhost:3000/users/login 400 (Bad Request)
Login Err Error: Request failed with status code 400
at createError (createError.js:16:1)
at settle (settle.js:17:1)
at XMLHttpRequest.onloadend (xhr.js:66:1)
当请求中出现错误时,服务器会发送一个已处理的消息,并且success = false,但是在axios的响应中,没有发现任何一个使用了soc/wait。
如果我不使用basec/wait,我可以在axios.post.then.catch()中检查这两个,但是我想使用basec/wait来使代码更干净。我该怎么办?
2条答案
按热度按时间ulydmbyx1#
如果服务器发送数组消息,您应该能够在错误中的响应对象中获取它们,如下所示:
mgdq6dx12#
如果服务器发送数组消息,您应该能够在错误中的响应对象中获取它们,如下所示: