Изучите Nuxt с коллекцией из 100+ советов!

abortNavigation

abortNavigation - это хелпер функция, которая предотвращает навигацию и выбрасывает ошибку, если она задана в качестве параметра.
abortNavigation можно использовать только внутри обработчика middleware маршрута.

Тип

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 в виде String

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

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

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

err в виде Error Object

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

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