无法在React app

时间:2017-01-25 10:57:12

标签: json node.js reactjs express redux

在我的React应用程序中,我试图访问从这位服务器代码返回的错误。

  User.findByUsername(req.body.username)
    .then((foundUsername) => {
      if (foundUsername) {
        return res.status(422)
          .json({
            error: 'This username is not available.'
          });
      }

以下是客户端的动作创建者

export const signupUser = ({ displayName, email, password, username }) => {
  return (dispatch) => {
    axios.post(`${API_URL}/signup`, { displayName, email, password, username })
      .then((res) => {
        dispatch({ type: AUTH_USER });
        localStorage.setItem('token', res.data.token);
        browserHistory.push('/');
      })
      .catch((res) => {
        console.log(res.data.error);
      });
  };
};

我似乎无法弄明白的是,我可以在我的res.data.token案例中访问then,但在res.data.error案例中我无法抓住catch虽然我可以在Chrome上的网络标签中看到响应。

如果我在res案例中将catch登录到控制台

,这就是我所得到的
  

错误:请求失败,状态码为422       at createError(eval at 150(bundle.e3597bf ... .js:39),:15:15)       在定居点​​(eval at 258(bundle.e3597bf ... .js:125),:18:12)       在XMLHttpRequest.handleLoad(eval at 147(bundle.e3597bf ... .js:7),:77:7)

res中记录then给了我想要的对象。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

res对象中有两个键。

configresponse

您要查找的错误消息位于res.response.data.error