透過超過 100 個提示的集合學習 Nuxt!

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)
  }
})