2017-08-06 36 views
0

我想知道什么是我处理错误的最佳方式,以及何时应该使用错误代码作为响应,从我的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失败”时,我应该如何得到这些错误?

感谢

回答

0

您也可以返回由200 不同的,所以你应该很容易返回与错误并在响应的主体错误的详细信息HTTP状态代码状态代码内容。

+0

是的,这是我目前正在处理的事情,发回200的响应,并拿起响应正文中的错误,似乎工作正常。但是我问,这是做事的正确方式,还是应该发回错误代码 - 如果是的话,如何从响应中提取错误。 – Notorious

+0

我已经回答你了。无论您发送的状态码如何,都可以发送身体响应。 正确的方法是通过正确的状态码发送响应! – Syncro