abortNavigation

abortNavigation 是一个辅助函数,它可以阻止导航的发生,并在将导航设置为参数时抛出错误。
abortNavigation 仅在 路由中间件处理程序 内部可用。¥abortNavigation is only usable inside a route middleware handler.

类型

¥Type

abortNavigation(err?: Error | string): false

参数

¥Parameters

err

  • 类型:Error | string
    abortNavigation 抛出的可选错误。

示例

¥Examples

以下示例展示了如何在路由中间件中使用 abortNavigation 来防止未经授权的路由访问:

¥The example below shows how you can use abortNavigation in a route middleware to prevent unauthorized route access:

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 作为字符串

¥err as a String

你可以将错误作为字符串传递:

¥You can pass the error as a string:

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

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

err 作为错误对象

¥err as an Error Object

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

¥You can pass the error as an Error object, e.g. caught by the catch-block:

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