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
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
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.
※Esta página es una traducción no oficial de la documentación oficial de Nuxt.js.
La página correspondiente en la documentación oficial está aquí:
https://nuxt.com/docs/3.x/api/utils/create-error