En la documentación oficial explican un poco mas sobre el tema. Manejo de Errores Express
Tu primera experiencia con Node.js
¿Dónde aprender backend con Node.js actualizado?
Todo lo que aprenderás sobre backend con Node.js
¿Qué es Node.js?
¿Qué es Node.js y para qué sirve?
Diferencias entre Node.js y JavaScript
Resumen: Diferencias Nodejs y Javascript
Instalación de Node.js
Arquitectura orientada a eventos
Node.js para la web
Manejo y uso de Streams con Node.js
Introducción a streams
Readable y Writable streams
Duplex y Transforms streams
Uso de utilidades de Node.js
Sistema operativo y sistema de archivos
Administrar directorios y archivos
Consola, utilidades y debugging
Clusters y procesos hijos
Crea tu primer proyecto en Express.js
¿Qué es Express.js y para qué sirve?
Creando tu primer servidor con Express.js
Request y Response Objects
Aprende a crear un API con REST
Anatomía de una API Restful
Estructura de una película con Moockaru
Implementando un CRUD en Express.js
Métodos idempotentes del CRUD
Implementando una capa de servicios
Cómo conectarse con librerías externas en Express.js
Creación de una BD en MongoAtlas
Conexión a MongoAtlas una instancia de MongoDB
Conexión con Robot3T y MongoDB Compass a una BD
Implementación de las acciones de MongoDB
Conexión de nuestros servicios con MongoDB
Conoce como funcionan los Middleware en Express.js
¿Qué es un middleware? Capa de manejo de errores usando un middleware
Manejo de errores asíncronos y síncronos en Express
Capa de validación de datos usando un middleware
¿Qué es Joi y Boom?
Implementando Boom
Implementando Joi
Probar la validación de nuestros endpoints
Middlewares populares en Express.js
Implementa tests en Node.js
Creación de tests para nuestros endpoints
Creación de tests para nuestros servicios
Creación de tests para nuestras utilidades
Agregando un comando para coverage
Debugging e inspect
Despliega tu primera aplicación en Express.js
Considerando las mejores prácticas para el despliegue
Variables de entorno, CORS y HTTPS
¿Cómo implementar una capa de manejo de caché?
¿Cómo contener tu aplicación en Docker?
Despliegue en Now
Conclusiones
¿Qué aprendiste en este curso?
Lectura
El manejo de errores en Express es el proceso de capturar un error de manera asíncrona como síncrona . Por defecto Express viene con un manejador de errores por defecto, así que no es necesario escribir uno para empezar a usarlo.
...
Regístrate o inicia sesión para leer el resto del contenido.
Aportes 30
Preguntas 0
En la documentación oficial explican un poco mas sobre el tema. Manejo de Errores Express
Si se fijan, siempre que se manejan errores asíncronos con async/await, tenemos la misma estructura.
try {
// operaciones asíncronas
} catch(err) {
next(err)
}
y esta sintaxis repetitiva se puede empezar a acumular en nuestras rutas y middlewares.
Les recomiendo el paquete express-async-errors. Con este pueden eliminar completamente los bloques try/catch.
El paquete se usa importandolo index.js o en el archivo principal del servidor.
require('express-async-errors')
Como ejemplo, hasta este punto del curso, la ruta para el endpoint GET api/movies/ es esta
router.get('/', async (req, res, next) => {
const { tags } = req.query;
try {
const movies = await movieService.getMovies({ tags });
res.status(200).json({
data: movies,
message: 'movies listed',
});
} catch (err) {
next(err);
}
}
)
y pasaria a escribirse simplemente así:
router.get('/', async (req, res, next) => {
const { tags } = req.query;
const movies = await movieService.getMovies({ tags });
res.status(200).json({
data: movies,
message: 'movies listed',
});
}
)
En caso de que ocurra un error en la función async, el paquete se encarga de llamar automáticamente al middleware de error que implementamos.
fue uns gran explicacion muy detallada de como se deben capturar los erros para que puedan ser procesados por los middleware de manejo de errores en Express
Ya había usado next() pero no entendía cómo era su función. Con esta lectura me queda un poco más claro. Checare documentación para entenderlo al 100%
Gracias!
le entendi :3
Buena aclaración
Esta explicación estuvo bien.
Express maneja los errores que ocurren se manera síncrona, pero es responsabilidad de nosotros manejar los errores asíncronos.
Esta lectura, me ayudo a comprender el manejo de errores en Express.
Muy muy muy interesante.
Genial
Interesante lectura. Gracias!!
Buena explicación!
Estupenda explicación lo tendré en cuenta cuando esté desarrollando los métodos para manejar los errores de funciones síncronas y asíncronas.
muy buena explicacion referente a next… no sabia a ciencia cierta cual era su funcionalidad en si… pero ahora entiendo, y mucho mejor con esto de los manejadores de errores…
Esta fue una buena explicación… Express es muy “inteligente en estos casos”
Si se invoca
next('mensaje del error')
en lugar de
throw new Error('mensaje del error')
¿Tiene el mismo efecto, o es obligatorio declararlo así?
Uno de los temas que mas me cuesta a la hora de aprender un tema es el manejo de errores pero el profesor lo esta explicando muy bien hasta el momento
Esta super, vamo’ a ver 😃
Para errores que se retornan desde funciones asíncronas invocadas desde un manejador de ruta o un middleware, es necesario pasar el error como argumento a la función next().
Bien, me queda claro
en código asíncrono tenemos que siempre utilizar el try-catch
next es un callback opcional que usa express para manejar errores y el encadenamiento de middlewares.
siempre debe ir el bloque try-catch
Gracias
Los middlewares son geniales 😄 !!
WoW algo nuevo que aprender 😃
Vamos!!
router.get('/', async (req, res, next) => {
const { tags } = req.query || {}
try {
const movies = await moviesService.getMovies({ tags })
throw new Error('Unespected Error');
res.status(200).json({
data: movies,
message: 'movies listed'
})
} catch (error) {
next(error) //esto es lo que llama al middleware
}
})
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?