の不正な要求を取得し、私は(superagent
を使用して)以下と同じユーザの電子メールでPOST
のエラー処理を行うようにしようとしています:代わりに、完全なエラーメッセージ
export function signUpUser(userData) {
return async dispatch => {
try {
const currentUser = await request.post(`${url}/signup`).send(userData);
set(window.localStorage, 'x-auth', currentUser);
dispatch(signUpSuccessObject(userData));
} catch (error) {
dispatch(signUpFailObject(error));
}
};
}
私は私が見ることができる、以下を取得したいです私のネットワークタブ内:
{ "名": "SequelizeUniqueConstraintError"、 "エラー":[{ "メッセージ": "電子メール は一意でなければなりません"、 "タイプ": "ユニーク 違反"、 "パス":" email "、" value ":" [email protected] "、" origin ":" DB "、" instance ":
しかし、代わりに私が得るすべては次のとおりです。APIのための
不正な要求
マイコントローラ:
User.create(
Object.assign(req.body, {
password: bcrypt.hashSync(req.body.password, 10),
})
)
.then(() => {
const myToken = jwt.sign({email: req.body.email}, 'leogoesger');
res.status(200).send(myToken);
})
.catch(err => res.status(400).send(err));
},
ステータス400(別名「バッドリクエスト」)は、(例えば不正な構文、大きすぎるサイズ、など)クライアントのエラーを示しています。特に、検証に失敗したDBフィールドの場合、これは実際にエラーの原因ではありません。別のステータスコードを送り返して、クライアント側でエラーが表示されないことを確認していますか。私の推測では、ブラウザのデフォルトの動作が特定のステータスコードを引き継いで、400がそのうちの一つかもしれないと思いますか? – Jaxx
あなたのような状況にどのようなステータスコードを使用するかは、議論の余地があります。 https://stackoverflow.com/questions/19671317/400-bad-request-http-error-code-meaning-非常に興味深い回答とコメントがあります。 – Jaxx
ディスパッチで問題が発生しました。私が使ったはずのものは 'error.response'です。 'onSuccess'の場合とは違って動作するのは変です。 – Leogoesger