2017-01-25 3 views
0

私のリアクションアプリケーションでは、このサーバーコードのビットから返されたエラーにアクセスしようとしています。ここで エクスプレスサーバーからレスポンスデータにアクセスできません

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); 
     }); 
    }; 
}; 

私は何を見つけ出すように見えることはできませんが、私は私のthen場合にres.data.tokenにアクセスできることであるが、中にres.data.errorを手に入れることができない、クライアント側でのアクションの作成者であります私のcatchケースでは、私は、応答がクロムのネットワークタブに表示されるのを見ることができます。

は、これは私がthenresをロギングcatch場合

Error: Request failed with status code 422 at createError (eval at 150 (bundle.e3597bf….js:39), :15:15) at settle (eval at 258 (bundle.e3597bf….js:125), :18:12) at XMLHttpRequest.handleLoad (eval at 147 (bundle.e3597bf….js:7), :77:7)

にコンソールにresを記録する場合、私は私に私所期の目的を与え得るものです。どんな助けもありがとう。

+0

フィールド{のdisplayName、電子メール、パスワード、ユーザー名}であるが正しいですか? '$ {API_URL}/signup /'ではないかもしれませんか?承認トークンが必要ですか? –

答えて

2

resオブジェクトには2つのキーがあります。

configresponse

そして、あなたが探しているエラーメッセージがres.response.data.error

+0

ありがとう!それは働いた。私が成功事例で 'res.data'に直接アクセスできるので、私は混乱していたと思います – malimichael

+0

も見てください:https://github.com/mzabriskie/axios#handling-errors –

関連する問題