Я пытаюсь проверить форму, используя Redux Form, Thunk, а затем Joi на сервере. Что я хотел бы сделать, это когда пользователь отправляет форму, я хочу отправить свое действие, которое вызывает мой API, и затем, если промежуточное ПО Joi обнаружит проблему с формой, соответственно отреагирует на внешний интерфейс, основываясь на том, чтоошибка есть.
Проблема, с которой я столкнулся, заключается в том, что я не знаю, как получить доступ к json, который следует из кода состояния ошибки, отправленного Джоем.
Вот мое диспетчерское действие на внешнем интерфейсе:
export const signUp = (
newUser: User
): ThunkAction<void, AppState, null, Action<string>> => async dispatch => {
try {
const res = await axios.post("http://localhost:2000/users/signup", newUser);
} catch (error) {
console.log("THE ERROR", error)
}
};
А затем на бэкэнде это мое промежуточное программное обеспечение для joi:
validateBody: (schema) => {
return (req, res, next) => {
const result = Joi.validate(req.body, schema);
if (result.error) {
return res.status(400).json({ error: "this is your error" })
}
// validated values are in req.value.body if it's there
if (!req.value) {
req.value = {};
}
req.value['body'] = result.value;
// the next allows the middleware to pass through
next();
}
},
Если я запускаю это спроблема в форме, я получаю
THE ERROR Error: Request failed with status code 400
at createError (createError.js:17)
at settle (settle.js:19)
at XMLHttpRequest.handleLoad (xhr.js:60)
Но я не могу найти, как получить доступ к json («это ваша ошибка») в блоке catch. Любая помощь могла бы быть полезна. Большое спасибо.