abortNavigation

ソース
abortNavigation は、ナビゲーションが行われるのを防ぎ、パラメーターとして設定されている場合はエラーをスローするヘルパー関数です。
abortNavigation は、ルーティングミドルウェアハンドラー の内部でのみ使用できます。

タイプ

署名
export function abortNavigation (err?: Error | string): false

パラメーター

err

  • タイプ: エラー| string
    abortNavigation によってスローされるオプションのエラー。

以下の例は、ルーティングミドルウェアで abortNavigation を使用して、不正なルートアクセスを防ぐ方法を示しています。

app/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 を文字列として

エラーを文字列として渡すことができます。

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

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

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

エラーをエラーオブジェクトとして渡すことができます (例: catch ブロックによって捕捉された場合)。

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