Как отловить сообщение об ошибке с сервера nodejs? - PullRequest
0 голосов
/ 03 мая 2020

SUP, ребята! Это код на стороне сервера, когда что-то идет не так:

return res.status(400).send({ error: 'Email already used!'});

И это мой код внешнего интерфейса, который я пытаюсь поймать сообщение об ошибке:

return async dispacth => {
        try {

            const res = await axios.post('http://localhost:3333/account/signin', userData);

            localStorage.setItem('JWT_TOKEN', res.data.token);

            dispacth({
                type: AUTH_SIGN_IN,
                token: res.data.token
            });

        } catch (err) {
            console.log(err.message)
            console.error('error', err);

            dispacth({
                type: AUTH_ERROR,
                errorMessage: err.message
            });
        }
    }

Но это то, что я получил на консоли браузера:

enter image description here

Ответы [ 2 ]

2 голосов
/ 03 мая 2020

Попробуйте console.log(err.response) вместо console.log(err.message).

Я новичок в Node и Ax ios, но использование "err.response" после перехвата "err" устранило очень похожую проблему, с которой я столкнулся .

1 голос
/ 03 мая 2020

Для res.status(400).send('Email already used!');

Вы можете сделать:

console.log(error.response.data.message);

Для сообщения об ошибке, отправляемого как JSON объект, такой как res.status(400).send({ error: 'Email already used!'});

Вы можете делать:

console.log(error.response.data.error);
...