abortNavigation 仅可在路由中间件处理程序内使用。export function abortNavigation (err?: Error | string): false
errError | stringabortNavigation 抛出。下面的示例演示了如何在路由中间件中使用 abortNavigation 来阻止未授权的路由访问:
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 作为字符串你可以将错误作为字符串传递:
export default defineNuxtRouteMiddleware((to, from) => {
const user = useState('user')
if (!user.value.isAuthorized) {
return abortNavigation('Insufficient permissions.')
}
})
err 作为 Error 对象你可以将错误作为一个 Error 对象传递,例如在 catch 块中捕获到的错误:
export default defineNuxtRouteMiddleware((to, from) => {
try {
/* code that might throw an error */
} catch (err) {
return abortNavigation(err)
}
})