nuxt logo

ドキュメント翻訳(非公式)

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オブジェクトとして渡すことができます。例えば、catchブロックで捕捉された場合:

middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    /* エラーをスローする可能性のあるコード */
  } catch (err) {
    return abortNavigation(err)
  }
})