- 1
¿Dónde aprender backend con Node.js actualizado?
00:21 - 2

Todo lo que aprenderás sobre backend con Node.js
02:27 - 3

¿Qué es Node.js?
00:00 - 4

¿Qué es Node.js y para qué sirve?
03:12 - 5

Diferencias entre Node.js y JavaScript
01:53 - 6
Resumen: Diferencias Nodejs y Javascript
00:08 - 7
Instalación de Node.js
00:18 - 8

Arquitectura orientada a eventos
12:46 - 9

Node.js para la web
08:31
Manejo de errores asíncronos y síncronos en Express
Clase 31 de 48 • Curso de Backend con Node.js 2019
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.
Los errores que ocurren de manera síncrona dentro un manejador de rutas o un middleware no requieren trabajo extra. Si un código síncrono lanza un error Express automáticamente capturará el error. Por ejemplo:
app.get("/", function(req, res) { throw new Error("BROKEN"); // Express capturara este error por sí solo. });
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(), de esta manera Express capturará el error y lo procesará. Por ejemplo:
app.get("/", function(req, res, next) { fs.readFile("/file-does-not-exist", function(err, data) { if (err) { next(err); // Se debe pasar el error a Express. } else { res.send(data); } }); });
Es responsabilidad de nosotros capturar errores que puedan ocurrir en código asíncrono invocado desde un manejador de ruta o middleware para que Express lo procese. Por ejemplo:
app.get("/", function(req, res, next) { setTimeout(function() { try { throw new Error("BROKEN"); } catch (err) { next(err); } }, 100); });
El ejemplo de arriba usa un bloque try...catch para capturar los errores en el código asíncrono y pasarlo a Express. Si el bloque try...catch fuese omitido, Express no podría capturar el error debido a que no es parte de un manejador síncrono de código.
Cuando se usan funciones que retornan promesas, puedes simplemente proveer la funcionalidad next al final del manejador catch de la promesa y Express automáticamente capturará el error. Por ejemplo:
app.get("/", function(req, res, next) { Promise.resolve() .then(function() { throw new Error("BROKEN"); }) .catch(next); // Errores serán pasados a Express. });