跳到主要内容

abortNavigation

abortNavigation 是一个辅助函数,用于阻止导航的发生,并在设置了参数时抛出错误。

abortNavigation 只能在路由中间件处理器内部使用。 :

类型

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

参数

err

  • 类型Error | 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('权限不足。')
  }
})

err 作为 Error 对象

你可以将错误作为 Error 对象传入,例如被 catch 块捕获的错误:

app/middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    /* 可能抛出错误的代码 */
  } catch (err) {
    return abortNavigation(err)
  }
})