¿Qué es Joi y Boom?

Clase 33 de 48Curso de Backend con Node.js 2019

Resumen

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.