首页 > 解决方案 > 如何使用 express 故意引发错误

问题描述

在向我的节点服务器发送 axios 请求后,我如何响应我“拒绝”Axios 路由/请求并最终出现在客户端代码的“catch()”中?我知道“res.send(data)”或“res.json(data)”将解析为 promise 的“then()”。有什么我可以回应的会拒绝它吗?

axios.post('/edit-item', {_id: id, updateText: editInput.value, author: author}).then((response) => {
    e.target.parentElement.parentElement.children[3].innerHTML = `${response.data}`
}).catch(() => {
    //I want to end up here by responding with something from the server
})

标签: javascriptexpressaxios

解决方案


您可以在 Node.js 中引发将由内部错误处理程序处理的错误,或者您可以返回您选择的状态代码

引发错误:

app.post(req, res, next) {
  throw new Error('Something went wrong')

返回错误信息:

app.post(req, res, next) {
  res.status(500).send({ error: 'Something failed!' })
}

而不是500你可以在那里输入任何错误状态代码

一旦返回错误代码,axios 将进入该catch部分

您可以在此处找到有关错误处理的更多信息:错误处理


推荐阅读