Nuxt Nation カンファレンスが近づいています。11月12日~13日にご参加ください。

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('Insufficient permissions.')
  }
})

err をエラーオブジェクトとして

Error オブジェクトとしてエラーを渡すことができます。たとえば、catch ブロックでキャッチされた場合などです

middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    /* code that might throw an error */
  } catch (err) {
    return abortNavigation(err)
  }
})