React/Redux - 处理错误和错误代码
问题描述:
我想知道什么是我处理错误的最佳方式,以及何时应该使用错误代码作为响应,从我的API与错误对象一起使用。React/Redux - 处理错误和错误代码
我刚刚开始构建一个多部分表单反应,每当用户进入下一步时,我将发送一个请求到API来验证数据,然后再转到下一步,然后发送如果存在错误对象,则返回true/false的响应。
我的问题是,当我返回一般性错误,如:
if(hasErr == true) {
res.status(200).json({
success: false,
errors: errorsObject
});
}
我应该发送的200状态回来了,或者我应该在400某处发回错误代码的响应范围?
在客户端目前,当我recieving的响应,我的基本终极版动作看起来是这样的:
this.props.createlistingAction(this.state).then(
(res) => {
if(res.payload.success == true) {
console.log('Success!');
} else {
console.log('We have errors!');
this.setState({ errors: res.payload.errors });
}
console.log(res);
//this.props.history.push('/'),
},
(err) => { // error
console.log(err.response);
this.setState({errors: err.response.data.errors, isLoading: false});
}
);
是否确定要处理这样的错误?或者,如果您确实建议我发回400错误响应,那么当有效负载只包含一个通用错误“错误:请求在createError时出现状态代码400失败”时,我应该如何得到这些错误?
感谢
答
您也可以返回由200 不同的,所以你应该很容易返回与错误并在响应的主体错误的详细信息HTTP状态代码状态代码内容。
是的,这是我目前正在处理的事情,发回200的响应,并拿起响应正文中的错误,似乎工作正常。但是我问,这是做事的正确方式,还是应该发回错误代码 - 如果是的话,如何从响应中提取错误。 – Notorious
我已经回答你了。无论您发送的状态码如何,都可以发送身体响应。 正确的方法是通过正确的状态码发送响应! – Syncro