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