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:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

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 鈥渟i 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.