error.vue

error.vue 파일은 Nuxt 애플리케이션의 에러 페이지입니다.

애플리케이션의 수명 동안, 런타임에 예기치 않게 오류가 발생할 수 있습니다. 이러한 경우, error.vue 파일을 사용하여 기본 오류 파일을 오버라이드하고 오류를 보기 좋게 표시할 수 있습니다.

error.vue
<script setup lang="ts">
import type { NuxtError } from '#app'

const props = defineProps({
  error: Object as () => NuxtError
})
</script>

<template>
  <div>
    <h1>{{ error.statusCode }}</h1>
    <NuxtLink to="/">홈으로 돌아가기</NuxtLink>
  </div>
</template>
'에러 페이지'라고 불리지만, 이 파일은 라우트가 아니며 ~/pages 디렉터리에 위치해서는 안 됩니다. 같은 이유로, 이 페이지 내에서 definePageMeta를 사용해서도 안 됩니다. 그렇지만, NuxtLayout 컴포넌트를 활용하고 레이아웃의 이름을 지정하여 에러 파일에서도 레이아웃을 사용할 수 있습니다.

에러 페이지는 단일 prop인 error를 가지며, 이 prop에는 처리할 오류가 담겨 있습니다.

error 객체는 다음과 같은 필드를 제공합니다:

{
  statusCode: number
  fatal: boolean
  unhandled: boolean
  statusMessage?: string
  data?: unknown
  cause?: unknown
}

커스텀 필드가 있는 오류가 있다면, 해당 필드는 손실됩니다. 대신 data에 할당해야 합니다:

throw createError({
  statusCode: 404,
  statusMessage: 'Page Not Found',
  data: {
    myCustomField: true
  }
})