Обработка ошибок в Express после вызова ax ios - PullRequest
1 голос
/ 13 марта 2020

Я работаю над созданием прокси-приложения, используя express + ax ios (впервые). По сути, все, что делает приложение, - это извлекает некоторые данные из API, а затем отправляет ответ, используя express.

async function getInfo() {
  try {
    const response = await axios.get(url);
    return response.data;
  } catch (error) {
    return error.response.data;
  }
}

const info = getInfo();

export default (req, res) => {
  return res.status(200).send(info);
};

. Я немного запутался в том, как обрабатывать ошибки, если API возвращает ошибку, как часть экспорта по умолчанию для Express у меня должно быть условие для каждого кода ошибки?

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

В вашем коде:

const response = await axios.get(url);

Здесь ax ios предоставит вам полный ответ API, там вы можете получить код состояния и подробную информацию об ошибке или успех et c. Но если вы не хотите обрабатывать его там, вы также можете управлять им там, где вы вызываете функцию.

Как обрабатывать ошибки в Ax ios, вы можете проверить здесь

В случае, если вы печатаете информационную переменную, она возвращает обещание. Просто используйте .then() следующим образом:

getInfo().then((result) => {
   //here the result will give you the error, success, status code etc.
})

В своем коде вы можете попробовать следующий код, чтобы отправить ответ на express.

 export default async (req, res) => {
   async function getInfo() {
    try {
      await axios.get(url).then(function (response) {

            return response;
        }).catch(function (error) {

            return error;
        })
    } catch (error) {
      if (error.response) {
        return error.response
      } else if(error.request) {
        return error.request
      }
    }
   }

  return await getInfo().then((result) => {
    if(result.error) {
         res.status(result.error.status).send(result);
    } else {
         res.status(200).send(info);
    }
  })
};
0 голосов
/ 13 марта 2020

возвращает ошибку как есть из топора ios, она должна содержать всю соответствующую информацию, включая код состояния и подробную информацию об ошибке (если вы не хотите прикрепить к ней дополнительную информацию)

...