Tu primera experiencia con Node.js

1

¿Dónde aprender backend con Node.js actualizado?

2

Todo lo que aprenderás sobre backend con Node.js

3

¿Qué es Node.js?

4

¿Qué es Node.js y para qué sirve?

5

Diferencias entre Node.js y JavaScript

6

Resumen: Diferencias Nodejs y Javascript

7

Instalación de Node.js

8

Arquitectura orientada a eventos

9

Node.js para la web

Manejo y uso de Streams con Node.js

10

Introducción a streams

11

Readable y Writable streams

12

Duplex y Transforms streams

Uso de utilidades de Node.js

13

Sistema operativo y sistema de archivos

14

Administrar directorios y archivos

15

Consola, utilidades y debugging

16

Clusters y procesos hijos

Crea tu primer proyecto en Express.js

17

¿Qué es Express.js y para qué sirve?

18

Creando tu primer servidor con Express.js

19

Request y Response Objects

Aprende a crear un API con REST

20

Anatomía de una API Restful

21

Estructura de una película con Moockaru

22

Implementando un CRUD en Express.js

23

Métodos idempotentes del CRUD

24

Implementando una capa de servicios

Cómo conectarse con librerías externas en Express.js

25

Creación de una BD en MongoAtlas

26

Conexión a MongoAtlas una instancia de MongoDB

27

Conexión con Robot3T y MongoDB Compass a una BD

28

Implementación de las acciones de MongoDB

29

Conexión de nuestros servicios con MongoDB

Conoce como funcionan los Middleware en Express.js

30

¿Qué es un middleware? Capa de manejo de errores usando un middleware

31

Manejo de errores asíncronos y síncronos en Express

32

Capa de validación de datos usando un middleware

33

¿Qué es Joi y Boom?

34

Implementando Boom

35

Implementando Joi

36

Probar la validación de nuestros endpoints

37

Middlewares populares en Express.js

Implementa tests en Node.js

38

Creación de tests para nuestros endpoints

39

Creación de tests para nuestros servicios

40

Creación de tests para nuestras utilidades

41

Agregando un comando para coverage

42

Debugging e inspect

Despliega tu primera aplicación en Express.js

43

Considerando las mejores prácticas para el despliegue

44

Variables de entorno, CORS y HTTPS

45

¿Cómo implementar una capa de manejo de caché?

46

¿Cómo contener tu aplicación en Docker?

47

Despliegue en Now

Conclusiones

48

¿Qué aprendiste en este curso?

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Implementando Boom

34/48
Recursos

Aportes 19

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Boom

Boom nos provee una serie de utilidades para retornar errores HTTP, cada utilidad es un objeto de respuesta de tipo Boom que incluye las siguientes propiedades:

isBoom - si es true indica que es una instancia de Boom.

isServer - si es true indica que el código de respuesta es mayor o igual 500, aquí más informacion de los codigos de respuesta HTTP status Code.

message - el mensaje del error.
typeof - el constructor usado para crear el error (ejemplo: Boom.badRequest).
output - la respuesta formateada (generalmente esta es la que usamos) y contiene las siguientes claves:

  • statusCode - código de estatus HTTP.
  • headers - un objeto que contiene encabezados HTTP donde cada clave es un nombre de encabezado y el valor es el contenido del encabezado.
  • payload - el objeto formateado usado como respuesta y contiene las siguientes claves:
    - statusCode - código de estatus HTTP, proviene de statusCode
    - error - nombre derivado del error HTTP statusCode.
    - message - mensaje de error derivado de error.message


BOOM = HTTP-FRIENDLY ERROR OBJECT => Nos provee una serie de utilidades para retornar errores HTTP.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::…::::::::::::::::…::…:::::…:::::::::::::::::::…:::::::::::::
isBoom = Si es TRUE indica que es una instancia de BOOM.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
isServer = Si es TRUE indica que el codigo de respuesta es mayor o igual a 500.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Message = El mensaje de Error.
:::::::::::::::::::::::::::::::::::::::::::::::::::
Output = La respuesta formateada(Genrealmente la utilizaremos) y continua con las siguientes claves:

  • statusCode => Código del estatus de HTTP.

  • Header => Un onjeto que contiene encabezados HTTP.

validateHandler.js
ErrorHandler.js
Index.js
notFoundHandler.js

En mi caso no me funciono el notFoundHandler porque al parecer hubo algun cambio en boom.
El codigo que me funciono es

const Boom = require('@hapi/boom');


function notFoundHandler(req,res){ 

  const {output} =  Boom.notFound('pagina no encontrada');

  res.status(output.statusCode);
  res.json(output.payload);

}

module.exports = notFoundHandler;

No olviden instalar boom

npm i @hapi/boom

Boom es genial :p

al instalar boom me detecto 2 vulnerabilidades, si les pasa lo mismo las arregle corriendo

npm audit fix

Hola compañeros les comparto la documentación de @hapi/boom
github:
https://github.com/hapijs/boom/blob/master/API.md
hapi:
https://hapi.dev/module/boom/

No tengo en mi proyecto el validationHandler Mmm… algo me habré saltado

encontre una alternativa a boom, http-errors, es igual de potente y no depende de @hapi

Crear notFoundHandler.js : OJO esto es un marcador

Buenas tardes!, a que se refiere cuando dice “si el error es o no de tipo BOOM”, que diferencia hay con otros errores y como se da cuenta el codigo si es de tipo BOOM?, gracias y saludos!.

Boom 🤯, creo que la voy a adoptar en mis proyectos

Me alegra el dia usar el @hapi/boom, que facil soy de manipular =P

Estoy en windows y a pesar de que ya he instalado @hapi/boom Error: Cannot find module '@hapi/boom’
Ya lo instale con npm e intente reinstalar las dependencia con yarn y nada quede con el curso a medias 😦

pero que es esto tan genial boom.

Gracias!!

Boom nos provee una serie de utilidades para retornar errores HTTP,

Me gustaría saber cómo puedo llamar posteriormente desde una operación POST a esta gestión de errores. Quizá no lo estoy encontrando en el repositorio.