abortNavigation

abortNavigation은 네비게이션이 진행되지 않도록 방지하고, 파라미터로 에러가 설정된 경우 해당 에러를 발생시키는 헬퍼 함수입니다.
abortNavigation라우트 미들웨어 핸들러 내부에서만 사용할 수 있습니다.

타입

abortNavigation(err?: Error | string): false

파라미터

err

  • 타입: Error | string
    abortNavigation에 의해 발생될 선택적 에러입니다.

예시

아래 예시는 라우트 미들웨어에서 abortNavigation을 사용하여 권한이 없는 라우트 접근을 방지하는 방법을 보여줍니다:

middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  const user = useState('user')

  if (!user.value.isAuthorized) {
    return abortNavigation()
  }

  if (to.path !== '/edit-post') {
    return navigateTo('/edit-post')
  }
})

err를 문자열로 전달

에러를 문자열로 전달할 수 있습니다:

middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  const user = useState('user')

  if (!user.value.isAuthorized) {
    return abortNavigation('권한이 부족합니다.')
  }
})

err를 Error 객체로 전달

에러를 Error 객체로 전달할 수 있습니다. 예를 들어 catch 블록에서 잡은 에러를 전달할 수 있습니다:

middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    /* 에러가 발생할 수 있는 코드 */
  } catch (err) {
    return abortNavigation(err)
  }
})