abortNavigation

原始檔
abortNavigation 是一個輔助函式,用於阻止導航發生,並且如果設定了錯誤作為引數,則會丟擲該錯誤。
abortNavigation 只能在路由中介軟體處理程式內部使用。

型別

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

引數

錯誤

  • 型別: 錯誤| 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)
  }
})