我已经使用NodeJS和Express构建了一些登录系统。我的错误处理基于发送适当的http状态代码,同时自定义错误消息。例如,错误的登录将返回以下内容:
res.status(401).send({ error: 'Incorrect login' })
如您所见,我既设置了一个状态,该状态将导致诺言失败(至少使用Axios),并发送我自己的错误。
在前端,这就是我所拥有的:
try {
var response = await axios({
method: 'post',
url: 'http://localhost:3000/signin',
data: {
email: this.state.email,
password: this.state.password
},
headers
})
} catch (error) {
console.log(response)
return alert(error)
}
由于401导致诺言被拒绝,我留下了这个内置错误:请求失败,状态码为401。
还有什么方法可以访问响应对象吗?我的想法是处理来自服务器的所有错误消息,从而使这项工作远离前台。
答案 0 :(得分:1)
使用error.response
从服务器获取响应。要显示整个错误对象,请执行console.dir(error)
try {
var { data } = await axios({
method: 'post',
url: 'http://localhost:3000/signin',
data: {
email: this.state.email,
password: this.state.password
},
headers
})
} catch (error) {
console.dir(error) // error.response contains your response
}