nuxt logo

Traducción de Documentación (No Oficial)

createError

Crear un objeto de error con metadatos adicionales.

Puedes usar esta función para crear un objeto de error con metadatos adicionales. Es utilizable tanto en las partes de Vue como de Nitro de tu aplicación, y está destinada a ser lanzada.

Parámetros

  • err: string | { cause, data, message, name, stack, statusCode, statusMessage, fatal }

Puedes pasar una cadena o un objeto a la función createError. Si pasas una cadena, se usará como el message del error, y el statusCode será por defecto 500. Si pasas un objeto, puedes establecer múltiples propiedades del error, como statusCode, message y otras propiedades del error.

En la aplicación Vue

Si lanzas un error creado con createError:

  • en el lado del servidor, activará una página de error a pantalla completa que puedes limpiar con clearError.
  • en el lado del cliente, lanzará un error no fatal para que lo manejes. Si necesitas activar una página de error a pantalla completa, puedes hacerlo estableciendo fatal: true.

Ejemplo

pages/movies/[slug\
const route = useRoute()
const { data } = await useFetch(`/api/movies/${route.params.slug}`)
if (!data.value) {
  throw createError({ statusCode: 404, statusMessage: 'Page Not Found' })
}

En Rutas API

Usa createError para activar el manejo de errores en las rutas API del servidor.

Ejemplo

server/api/error.ts
export default eventHandler(() => {
  throw createError({
    statusCode: 404,
    statusMessage: 'Page Not Found'
  })
})

En las rutas API, se recomienda usar createError pasando un objeto con un statusMessage corto porque puede ser accedido en el lado del cliente. De lo contrario, un message pasado a createError en una ruta API no se propagará al cliente. Alternativamente, puedes usar la propiedad data para pasar datos de vuelta al cliente. En cualquier caso, siempre considera evitar poner entradas de usuario dinámicas en el mensaje para evitar posibles problemas de seguridad.

Ver también getting-started > error-handling