В моем экспресс-приложении есть такая строка кода:

 catch (err) {
        res.status(500).send(err.message);
      }

Когда я консоль регистрирую ошибку, я получаю это сообщение:

name: 'TokenExpiredError',
message: 'jwt expired',

Но когда я получаю сообщение об ошибке в моем клиенте, используя запрос axios, например:

catch (err) {
    console.log(err.message)

Я получаю это: Request failed with status code 500

Как я могу получить доступ к оригинальному массажу?

0
Alexander 16 Окт 2019 в 17:48

1 ответ

Лучший ответ

Вы не хотите просто перехватить ошибку, ошибка 500 - это просто ошибка 500 (с собственным общим сообщением).

Вам нужно извлечь сообщение, которое вы отправляете в ответе, из тела ответа. Это со страниц вопросов github для axios https://github.com/axios/axios/issues / 960:

axios
.post('ajax/register/otp', this.registerData)
.then(function (response) {
       ...
})
.catch(function (error) {
      console.log(error.response);
 });
1
Robert Moskal 16 Окт 2019 в 15:31