Skip to main content
abortNavigation is only usable inside a route middleware handler.

Type Signature

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

Parameters

err
Error | string
Optional error to be thrown by abortNavigation. Can be an Error object or a string message.

Return Value

Returns false to abort the navigation.

Examples

Basic Usage

The example below shows how you can use abortNavigation in a route middleware to prevent unauthorized route access:
// 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')
  }
})

Using String Error Message

You can pass the error as a string:
// app/middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  const user = useState('user')

  if (!user.value.isAuthorized) {
    return abortNavigation('Insufficient permissions.')
  }
})

Using Error Object

You can pass the error as an Error object, e.g. caught by the catch-block:
// app/middleware/auth.ts
export default defineNuxtRouteMiddleware((to, from) => {
  try {
    /* code that might throw an error */
  } catch (err) {
    return abortNavigation(err)
  }
})

See Also