Компонент React отображает только сообщение об ошибке кода состояния вместо пользовательских - PullRequest
0 голосов
/ 10 февраля 2020

Во время POST для регистрации нового пользователя я проверяю, существует ли этот пользователь в базе данных mongoDB, и если да, отображать это в поле реакции рядом с формой регистрации. Я использую express. js для создания своего API и ax ios для отправки запросов со стороны клиента. Вот как я проверяю, зарегистрирован ли пользователь.

const user = await Model.User.findOne({email: req.body.email});
if(user) return res.status(400).send('User already registered');

Эта функция вызывается при нажатии кнопки Регистрация:

handleSubmit= async (userData) =>{
    await apis.registerNewUser(userData)
    .then(res => console.log(res.body))
    .catch(err => {
        console.log(err);
        this.setState({errorMessage: err.message});
    })   
}

Проблема в том, что я не могу отобразить пользовательское сообщение об ошибке, которое я добавляю при отправке ответа. Вместо того, чтобы «Пользователь уже зарегистрирован», я получаю «400 Плохой запрос», отображаемый рядом с формой регистрации. Когда я отправляю сообщение через почтальона, проблем не возникает, в текстовом окне ответа появляется ответ «Пользователь уже зарегистрирован», однако эта часть не существует при получении ошибки на стороне реакции. Я не могу отправить пользователю ошибку, которая ничего ему не говорит о причине, по которой он не может зарегистрироваться. Как я могу получить "Пользователь уже зарегистрирован" в реакции?

1 Ответ

0 голосов
/ 10 февраля 2020

Я нашел решение. Чтобы прочитать свойство этого пользовательского текста, помещенного в send () при обнаружении ошибки, мне нужно прочитать из err.response.data - это правильное свойство для чтения «Пользователь уже зарегистрирован». Надеюсь, это поможет кому-нибудь когда-нибудь.

...