Ironhack — Semana 5| Entramos en acción con ExpressJS, Mongoose y Node.
¡Seguimos añadiendo conocimientos de Back, con Express, Mongoose, NodeJS y AXIOS!
Semana 5 del bootcamp, ya bien adentrados al módulo 2, seguimos sumando conocimientos de todas las tecnologías de Back.
A lo largo del primer día aprendemos a recoger parámetros de las peticiones GET y POST de Express. Se trata de una sesión muy importante porque entender la diferencia entre estos dos métodos es clave para luego desarrollar un CRUD funcional 🥳.
A grosso modo, cuando en una web hay un formulario o una barra de búsqueda, la diferencia entre los métodos GET y POST radica en la forma de enviar los datos a la página cuando se pulsa el botón “Enviar”.
Mientras que el método GET envía los datos usando la URL (ej: buscar una canción en YouTube), el método POST los envía de forma que no podemos verlos (en un segundo plano u “ocultos” al usuario), (ej: el formulario de registro de un usuario nuevo a una web).
Luego, para recoger y usar esa información desde el Back, el procedimiento es distinto según el método.
¡El caso, importante estar atento durante la sesión, como en todas, para que luego gracias al Lab del final del día, consolidar los conocimientos que, como ya he dicho en anteriores blogs, son acumulativos y lo que veas hoy, mañana ya se implementará en la nueva sesión y no hay vuelta atrás!
Durante el segundo día, requerimos de los conocimientos del primer día de la semana para aprender a CREAR, ACTUALIZAR y ELIMINAR documentos de nuestras bases de datos a través de formularios y botones de nuestra página web. Con esto ya completamos el círculo del CRUD de nuestra BBDD.
Usando los métodos y del día 1, podemos añadir documentos, modificarlos o borrarlos de nuestra BBDD. Eso ya nos da mucho juego para que nuestras apps sean más interactivas para un usuario final.
También aprendemos a relacionar documentos de diferentes colecciones de MongoDB.
MongoDB es una base de datos NO-RELACIONAL, eso significa que los documentos no se basan en tablas y columnas, sinó en colecciones y documentos.
Por poner un ejemplo básico, imaginemos una APP de gestión de alquileres. Lo más básico que tendria nuestra BBDD sería, PROPIETARIOS y VIVIENDAS.
En MONGODB, la COLECCIÓN sería PROPIETARIOS y cada uno de los propietarios, sería un DOCUMENTO dentro de su colección.
Lo mismo con las viviendas. COLECCIÓN — VIVIENDAS, DOCUMENTOS — cada una de las Viviendas.
El caso es que, sería guai relacionar el documento propietario con los documentos viviendas que sean de su propiedad no? Pues hay un método para relacionarlos y así crear ese vínculo, en nuestro ejemplo, de PROPIETARIO-VIVIENDA.
Con el lab del día 2, pones en práctica todo lo enseñado en clase, que no es poco, y creas tu primer CRUD desde 0 💪!
El tercer día se trata el registro de usuarios. En este día aprendemos a registrar usuarios a nuestra aplicación web, encriptando la contraseña y guardando debidamente la información.
Gracias al paquete bcrypt de NPM podemos encriptar y proteger la privacidad de las contraseñas de nuestros usuarios. Este paquete nos permite aumentar la seguridad de nuestra aplicación web y la de sus transeúntes.
Nuestra Lead Teacher nos explicó al detalle cada fase del registro de un nuevo usuario, como hacemos la comprobación de datos, si son correctos, como los guardamos y se quedan protegidos.
También el proceso de inicio de sesión, de usuarios ya registrados. El número de pasos es menor, pero también hay que tener claro el esquema del proceso.
Aprendimos también como funcionan los middleware’s.
Los middleware’s son funciones que se ejecutan antes o después del manejo de una ruta.
A modo ejemplo, si un usuario está con sesión iniciada en nuestra app, este usuario no debería poder ir a la página de registro mientras tiene su sesión iniciada. Pues haríamos un middleware que compruebe si un usuario está iniciado sesión, y según su estado, pueda o no, acceder a distintas rutas.
Y ya por terminar, cuarto y quinto día de la semana, se nos presenta AXIOS. Este es un paquete de NPM que nos permite hacer llamadas a API’s desde un escenario de Front-End para el Back-End. Dichas llamadas a las API’s nos devuelve un objeto JSON. Se trata de un formato para guardar e intercambiar información que cualquier persona pueda leer.
Esto nos resulta de gran utilidad para consumir información de API’s tanto externas como internas 👨💻.
El uso del paquete Axios cobrará más sentido en el módulo 3, cuando trabajemos con REACT y estemos en la parte Front del proyecto.
En el último día, toca hacer grupos y planificar un poco el proyecto del módulo 2, que consistirá en montar un back-end completo con registro de usuarios, implementar CRUD en dos o más COLECCIONES con documentos relacionados. Y montar las vistas a través de ficheros Handlebars. Gestionar todos los tipos de errores posibles y sus notificaciones correspondientes.
Review semanal
Ha sido una semana de teoría muy dura pero de gran utilidad. Hemos completado un CRUD desde 0 y hemos aprendido a registrar usuarios de la forma correcta.
Los labs han sido muy clave para ir practicando lo mostrado en el aula y la dinámica de la clase ha sido muy positiva.
La semana pasada me atreví a decir que me parecía más cómodo trabajar en Back-End que con Front-End, y creo que puedo afirmar que se me está haciendo más fácil y le veo mucha más lógica, a mi parecer, al Back-End.
En la siguiente semana, la project week del módulo 2, es dónde podremos ver si hemos aprendido lo bastante cómo para crear un back-end desde 0 funcional.
Así que estar atentos al siguiente blog 🧐
Con todo esto dicho, gracias por vuestro tiempo y espero que mis blogs semanales os ayuden a que si queréis dar el paso, lo hagáis con menos dudas :)
Puedes contactar conmigo a través de LinkedIn o enviándome un correo a eloipampliega@gmail.com.
Link Anterior Blog Semanal: Ironhack — Semana 4| Empezamos Back-End con NodeJS
Link Siguiente Blog Semanal: Ironhack — Semana 6| Proyecto Back-End con MongoDB, implementación API Google Maps, dailies con el equipo y nuevos retos.