gpt4 book ai didi

javascript - 快速错误处理 : Sending a Message to Frontend

转载 作者:行者123 更新时间:2023-12-05 03:46:14 25 4
gpt4 key购买 nike

我在处理身份验证 API 调用时遇到了一些错误。当我从 Express 发送 500 状态时,我的前端(在本例中为 Vue)仅获取消息请求失败,状态代码为 500 而不是对分类更有帮助的消息,例如 这是最糟糕的永远错误(在下面的示例中)。

在下面的示例中,当我从 API 调用“/post”时,我抛出了一个错误,该错误由我的自定义中间件处理。中间件成功处理了错误并将适当的状态发送到我的前端,但我不知道如何发送有用的消息(例如“这是有史以来最严重的错误”)/在前端访问它们。

这是一个常见的用例吗?我做错了什么吗?我发送的消息是出现在 (err) 参数中,还是我需要添加一个 resp 参数?

“/login”的快速路由

router.post('/login', (req, res, next) => {
throw Error('this is the worst error ever')
})

自定义快速错误处理程序

app.use(function(err, req, res, next) {
res.status(err.status || 500).send({
error: {
status: err.status || 500,
message: err.message || 'Internal Server Error',
},
});
});

在 Vue 中处理 API 响应

login (e) {
e.preventDefault();
UserService.login(this.username, this.password) //this is simple axios post call
.catch((err) => {
this.loginStatus = err.message
return
})
}

最佳答案

为那些认为这有帮助的人找到了答案。被捕获的错误有一个响应变量。这是通过 express send 命令发送数据的地方。请参阅下面更正的前端代码:

login (e) {
e.preventDefault();
UserService.login(this.username, this.password) //this is simple axios post call
.catch((err) => {
this.loginStatus = err.response.data.message
return
})
}

关于javascript - 快速错误处理 : Sending a Message to Frontend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65400346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com