- 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
¿Qué es Joi y Boom?
Clase 33 de 48 • Curso de Backend con Node.js 2019
Contenido del curso
- 30

¿Qué es un middleware? Capa de manejo de errores usando un middleware
08:04 - 31
Manejo de errores asíncronos y síncronos en Express
01:34 - 32

Capa de validación de datos usando un middleware
03:24 - 33

¿Qué es Joi y Boom?
01:37 - 34

Implementando Boom
06:17 - 35

Implementando Joi
13:25 - 36

Probar la validación de nuestros endpoints
03:11 - 37
Middlewares populares en Express.js
00:39
Joi y Boom son tecnologías del ecosistema de HapiJS, pero son tan buenas que las vamos a integrar como middleware en nuestra aplicación de Express.
¿Qué es Boom en Hapi JS?
Boom es un manejador de errores que se presenta de una manera mucho más comprensible. Lo que nos permite es manejar errores de forma amigable. Por ejemplo, si quisiéramos manejar un error Forbidden, simplemente los debemos hacer es: Boom.forbidden([message], [data]). Recordemos que el error de un forbidden es un 403.
Fíjense que recordar todos los errores http es demasiado complicado. Hay errores 400, errores 500, entre otros.
Lo que hace Boom es facilitarnos su uso al darle el nombre directamente. Le podemos pasar un mensaje y nos devuelve una estructura bastante amigable con el status code, el error y el mensaje
¿Qué es Joi en Hapi JS?
Joi es un object schema validation. Es la librería que nos va a ayudar a validar los esquemas. En el repositorio de Joi podemos ver un ejemplo claro de cómo se usa.
A partir de requerir la librería de Joi, podemos crear un esquema. Por ejemplo, si quisiéramos definir como debería estar escrito nuestro username: username: Joi.string().alphanum().min(3).max(30).required() y es muy similar para los otros atributos. Por ejemplo, un password: password: Join.string().regex(/ˆ[a-zA-z0-9]{3-30}$/)
Actualmente, Joi se encuentra deprecado y ya no se actualiza.