nuxt logo

Tradução da Documentação (Não Oficial)

abortNavigation

abortNavigation é uma função auxiliar que impede a navegação e lança um erro se um for definido como parâmetro.

abortNavigation só pode ser usado dentro de um manipulador de middleware de rota.

Tipo

abortNavigation(err?: Error | string): false

Parâmetros

err

  • Tipo: Error | string

    Erro opcional a ser lançado por abortNavigation.

Exemplos

O exemplo abaixo mostra como você pode usar abortNavigation em um middleware de rota para impedir o acesso não autorizado à rota:

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 como uma String

Você pode passar o erro como uma string:

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

  if (!user.value.isAuthorized) {
    return abortNavigation('Permissões insuficientes.')
  }
})

err como um Objeto de Erro

Você pode passar o erro como um objeto Error, por exemplo, capturado pelo bloco catch:

middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    /* código que pode lançar um erro */
  } catch (err) {
    return abortNavigation(err)
  }
})