abortNavigation

Source
Отмена навигации с возможностью выброса ошибки.
abortNavigation можно вызывать только внутри маршрутного middleware.

Тип

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

Параметры

err

  • Тип: Error | string
    Необязательная ошибка, которую выбросит abortNavigation.

Примеры

В примере ниже abortNavigation в маршрутном middleware запрещает доступ неавторизованным пользователям:

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

Ошибка строкой

Можно передать строку:

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

  if (!user.value.isAuthorized) {
    return abortNavigation('Недостаточно прав.')
  }
})

Ошибка объектом Error

Можно передать объект Error, например из блока catch:

app/middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    /* код, который может выбросить ошибку */
  } catch (err) {
    return abortNavigation(err)
  }
})