Доступ к необработанному объекту ошибки на странице ошибок Nuxt - PullRequest
0 голосов
/ 31 января 2020

На страницу ошибки Nuxt. js, как описано здесь , передается свойство error, которое можно использовать для определения ошибки и отображения чего-либо подходящего.

Однако переданный объект ошибки выглядит примерно так:

{
  message:"Cannot read property 'nonexistentThing' of undefined",
  statusCode:"TypeError"
}

Я хотел бы предпринять действия на странице ошибок (используя API отчетов об ошибках), которая в идеале имела бы доступ к базовому объекту ошибки, включая backtrace et c.

Есть ли способ

  • получить доступ к этому со страницы ошибки; или
  • создать плагин, который перехватывает ошибку, пока собственная обработка ошибок Nuxt находится в полете?

1 Ответ

0 голосов
/ 31 января 2020

Хотя я не нашел способа доступа к базовому объекту ошибки, я нашел этот метод ошибки из nuxt, где вы можете выдать свое исключение, которое в итоге отображается на странице ошибок Nuxt. Вы можете получить доступ к этому методу ошибки в объекте контекста (https://nuxtjs.org/api/context/)

Пример ошибки, включая исключение, может быть следующим:

export default {
  asyncData ({ params, error }) {
    return axios.get(`https://my-api/posts/${params.id}`)
      .then((res) => {
        return { title: res.data.title }
      })
      .catch((e) => {
        error({ statusCode: 404, message: 'Post not found', myError: e })
      })
  }
}

Итак, вы можете обработать исключение на странице ошибки следующим образом

<template>
  <div class="container">
    <h1 v-if="error.statusCode === 404">Page not found</h1>
    <h1 v-else>An error occurred</h1>
    <nuxt-link to="/">Home page</nuxt-link>
  </div>
</template>

<script>
export default {
  props: ['error'],
  mounted() {
    const { statusCode, message, myError } = this.error;
    // send myError to error-reporting API
  }
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...