Я пытаюсь понять, как получать полезные сообщения об ошибках на стороне клиента, но продолжаю получать общие c сообщения об ошибках. Например, попытка зарегистрироваться по электронной почте, которая недоступна, может привести к сообщению об ошибке email@email.com is already in use
. Однако я получаю сообщение generi c Request failed with status code 409
, которое явно бесполезно для пользователя. Ответ сети соответствует ожидаемому, как показано на скриншоте ниже. Что дает? Почему я не получаю того же сообщения об ошибке, что и мои полезные данные (Redux)?
Ниже приведены соответствующие фрагменты кода.
Контроллер регистрации
export default {
signup: async (req, res, next) => {
try {
const { fullname, username, email, password } = req.body;
// Check if there is a user with the same email
const foundUser = await User.findOne({ email });
if (foundUser) {
return res.status(409).send({ error: `${email} is already in use` });
}
const newUser = await User.create({
fullname,
username,
email,
password,
});
// Assign token to succesfully registered user
const token = authToken(newUser);
return res.status(200).send({ token, user: newUser });
} catch (error) {
next(error);
}
},
};
Действие регистрации
export const createAccount = ({
fullname,
username,
email,
password,
history
}) => async dispatch => {
dispatch({
type: actionTypes.CREATE_ACCOUNT_REQUEST,
});
try {
const {
data: {
newUser: { token, user },
},
} = await request.post('/auth/signup', {
fullname,
username,
email,
password,
});
localStorage.setItem('auth-token', token);
dispatch({
type: actionTypes.CREATE_ACCOUNT_SUCCESS,
payload: user
});
// Redirect to home
history.push('/home');
} catch (error) {
dispatch({
type: actionTypes.CREATE_ACCOUNT_FAILURE,
payload: error.message
});
}
};
Регистрация ответа сети
Redux ошибка регистрации полезной нагрузки