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
}
})