abortNavigation

Исходный код
Функция abortNavigation отменяет навигацию; при переданном аргументе выбрасывает ошибку.
abortNavigation можно использовать только внутри обработчика middleware маршрута.

Тип

declare function abortNavigation (err?: Error | string): false

Параметры

err

  • тип: Error | string
    Опциональная ошибка, которая будет выброшена при вызове abortNavigation.

Примеры

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

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 в виде строки

Вы можете передать ошибку в виде строки:

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

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

err в виде объекта Error

Вы можете передать ошибку в виде объекта Error, например перехваченного в блоке catch:

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