Conocer y comprender c贸mo se realizan las conexiones hacia los servidores a trav茅s de internet y sus implicaciones en el desarrollo de servidores

1

Bienvenida y presentaci贸n del curso

2

Qu茅 es Node y c贸mo instalarlo

3

驴Qu茅 son y c贸mo se usan las peticiones HTTP?

4

M茅todos, cabeceras y estados

5

Cuerpo y query de la petici贸n

Crear un servidor HTTP en Javascript, y comenzar a escuchar y responder peticiones desde un cliente .

6

Crear un servidor HTTP desde NodeJS

7

驴C贸mo pueden venir las peticiones?

8

Recibir informaci贸n desde el cliente: Body y Query

9

Informaci贸n contextual: Leer las cabeceras

10

Tipos de respuesta: Vac铆a, plana, con datos y estructurada

11

Respuestas coherentes

12

Servir archivos est谩ticos

13

Errores: C贸mo presentarlos e implicaciones en la seguridad

Comprender y desarrollar la arquitectura b谩sica de un backend en NodeJS, y comunicarse entre m贸dulos

14

Conceptualmente: Rutas, controladores y bases de datos

15

Rutas y capa de red: Responsabilidades y l铆mites

16

Controladores: Definiendo la l贸gica de negocio

17

Almacenando la informaci贸n en una base de datos

Utilizar una base de datos para definir, modelar, almacenar y recuperar la informaci贸n de nuestra aplicaci贸n

18

Tipos de Bases de Datos: Relacionales y No Relacionales

19

Crear y Configurar tu Base de Datos con MongoDB

20

MongoDB: Almacenar y leer datos

21

MongoDB: Actualizar datos

22

MongoDB: Consultar datos

23

MongoDB: Eliminar Datos

24

Gestionar conexiones a la base de datos desde la API

Uso de entidades para crear aplicaciones escalables

25

Escalando la arquitectura: M煤ltiples entidades

26

Relacionando nuestras entidades

27

C贸mo recibir ficheros desde NodeJS

28

Guardar el fichero en el servidor

Conocer el protocolo de websockets, e implementar comunicaci贸n cliente/servidor con SocketIO.

29

WebSockets: Qu茅 son, por qu茅 son interesantes y c贸mo usarlos

30

Manejo de Websockets con NodeJS

31

Conectar la API al servidor de WebSockets

Revisi贸n de lo aprendido, y pr贸ximos pasos

32

Revisi贸n y pr贸ximos pasos

33

Tips para escalar nuestro proyecto

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Conceptualmente: Rutas, controladores y bases de datos

14/33
Recursos

Aportes 86

Preguntas 9

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Les comparto el diagrama explicado por Carlos

genial diagrama de la arquitectura del proyecto Backend!!! as铆 lo deber铆an detallar en los dem谩s cursos鈥 porque a veces uno como estudiante,van demasiado r谩pido los profes creando archivos y carpetas y no sabemos de antemano y en ese mismo momento la raz贸n de la organizaci贸n de documentos鈥 genial maestro!!!

De los mejores profesores que ha tenido Platzi, no se guarda nada y lo explica de manera precisa y concisa.

El profe es un monstruo!! Es uno de los mejores profesores de platzi y de mucho curso.

grandioso profesor, nominado al mejor profe de platzi 2020.

Hace poco use Strapi. Un Headless CMS que crea una API de manera sencilla. Pude observar que usa la misma arquitectura para contruir la API. Pero mi duda es:
驴Cu谩l es la diferencia con la arquitectura implementada en el otro curso de backend con Node de la escula de Javascript ? 驴Existe alguna gu铆a para saber mas sobre los patrones de dise帽o o arquitecturas de backend con Node?

Es el primer curso que veo que un profesor explica primero que arquitectura utilizara para el proyecto. Enhorabuena profesor Carlos.

La verdad, me parece el mejor curso que he tomado hasta el momento!

APORTE DE LA CLASE

Server.js: recibe primero las peticiones, se encarga de comprobar si las peticiones son correctas para poder enlazarse a nuestro servidor o cancelarlas si hay un tipo de problema o alg煤n fallo, tambi茅n se encargar谩 de configurar toda la informaci贸n importante de nuestro servidor (Base de Datos, cabeceras).
Routes.js: es el que gestiona las rutas, vera hacia donde quiere ir la petici贸n y llamara al componente adecuado.
Carpeta Componentes:
Message: esta carpeta tendr谩 toda la informaci贸n de los mensajes del servidor http. Cuales son las acciones, l贸gica y donde se almacena.
Network.js. gestiona todas las rutas, tendr谩 los eloquents todo con el protocolo http.
Controller: Contendr谩 toda la l贸gica de nuestro message. Si el mensaje necesita una fecha o traer algo y todas las operaciones CRUD, comprobaciones. LOGICA DE NEGOCIO.
Store.js: Gestiona la BD. Decir d贸nde y c贸mo guardar la informaci贸n.
Response.js: cada vez que una petici贸n sea correcta desde http o los componentes lo enviar谩 a response, de esa orma response ser谩 el que responder谩 al cliente.

Excelente profesor donde lo califico quiero darle 5 estrellas

Me gusta como explica, claro y preciso! Excelente profesor!

Y por estas clases y explicaciones, Carlos es de los mejores maestros de Platzi!

excelente explicaci贸n, muy bien platzi por siempre estar buscando excelentes profesores

Arquitectura de backend para NodeJS

Por fin !!! alguito de buenas practicas, por lo general platzi es puro c贸digo espagueti.

Modelo de clases de aplicacion de ejemplo Telegrom
Para entender mejor el desarrollo presento un peque帽o modelo de clases de los objetos que se utilizan.

Espero que sea de utilidad

Saludos

El mejor profe de Platzi!!

Super claro, gran manera de ense帽ara a estructurar nuestro proyecto.

Qu茅 buena explicaci贸n!!!馃敐馃憦馃徎

Muy clara la explicaci贸n, excelente trabajo

Grande Carlos, necesitamos m谩s cursos con 茅l!

Como se llama esta forma de estructurar los archivos,
es un patr贸n de dise帽o?

Todos los profesores ded backend deber铆an hacer esto. Es mucho m谩s facil de entender lo que se va a hacer si previamente se explica la arquitectura sin meterse de golpe con el c贸digo, primero la parte l贸gica conceptualmente hablando. Grande el profesor.

Recordemos que como programadores debemos tomarnos el tiempo de agarrar una hoja de papel, una pluma y ponernos a rayar todo esto. Al principio sera algo complicado porque quiz谩 no estemos acostumbrados pero recordemos que la ventaja de tener una aplicaci贸n lista para ser escalable nos representara mucho menos trabajo en el futuro al momento de realizar cambios y detectar errores.

Que bueno aprender a hacer las cosas bien desde un principio, Muy buena explicaci贸n 馃槃

excelente profesor!!

Se podr铆a decir que cada componente es un microservicio?

Excelente clase, as铆 deber铆an ser todas.

Me encanta este curso! Sin duda de los mejores que hay en Platzi.

Uff que excelente explicacion

Esta clase vale oro

隆qu茅 maravilla de profesor!
Excelente la manera como explica, ense帽a y transmite el conocimiento. Las personas m谩s inteligentes son las que hacen ver simple lo complejo. Gracias Carlos!

Platzi es lo mejor

Unas buenas cervezas bien fr铆as para Carlos, es un crack explicando. Sin duda, es uno de los mejores profesores que tiene Platzi鈥 Todo muy detallado, claro y comprensible.

Esta arquitectura esta basada en el modelo de las 3 capas. As铆 pueden googlear.

Profe un placer escucharlo!

Excelente profesor,

Excelente gestionar la base de datos para que en caso de utilizar una distinta a la original, no se tenga que gastar demasiado tiempo de desarrollo realizando los cambios

Profe, excelente explicaci贸n. Ahora bien yo agregar铆a una capa mas, que podr铆a ser transversal a los componentes que sea Auth. All铆 tendr铆a los middleware que usar铆an nuestras rutas HTTP para saber si la entidad puede accederlas. Por Ejemplo un usuario no autenticado.

Arquitectura modular: nos permite hacer una aplicaci贸n f谩cilmente administrable y escalable.

creo que por el momento el mejor curso de node que tom茅, la verdad me emociona y me incentiva a seguir aprendiendo. Mientras ve铆a como el profesor explicaba me salio una sonrisa de la nada porque me super emocione de todo de lo que estoy por aprender!! Gracias!!!

Por fin entiendo esto de la arquitectura. 馃憦馃憦馃帄

excelente explicacion

Muy f谩cil de entender, muy bien explicado!!

Una arquitectura interesante para aprender

Buena teor铆a vamos a ver que tal la practica

**Utilizando un dockerfile **

FROM node:12
COPY [鈥減ackage.json鈥,鈥減ackage-lock.json鈥, 鈥/usr/src/鈥漖

WORKDIR /usr/src

COPY [".", 鈥/usr/src/鈥漖

RUN npm install

EXPOSE 3000

CMD [鈥渘px鈥, 鈥渘odemon鈥,鈥渟erver.js鈥漖

Capas:
1.- Capa Principal: Toda la configuraci贸n de nuestro servidor
2.- Capa de Red: Donde se encuentran nuestra configuraci贸n de nuestras rutas y respuestas.
3.- Capa de componentes: Aqu铆 estar谩n todos nuestros componentes.

Esta Arquitectura yo la conozco como Controlador, Servicios y Repositorio. Los nombres son diferentes:
Network = Controlador
Controlador = Servicios
Store = Repositorio.

Muy buena clase, es esencial saber la estructura de nuestro backend para poder entender m谩s a fondo y hacer nuestro proyecto escalable, muy bueno!

Me ha encantado como se explica esto, me recuerda mucho al desarrollo por capas que menciona italo en los cursos de php, que buenos profesores de backend hay en platzi btw 馃槃

Esta es probablemente de las clases mas importantes del curso! En definitiva escoger una buena arquitectura impacta directamente el futuro del desarrollo de la misma, su escalabilidad, mantenimiento y demas puntos a tomar en cuenta! Esta mortal esto!

Esto es un MVC normal no? lo mismo que usan laravel / symfony en php, o eso me suena

He trabajado mucho con el modelo MVC (modelo vista controlador) y este se ve parecido, hay alguna diferencia si desarrollo usando un modelo Mvc en vez de este o es mejor usar este modelo para todo lo de node?

Lo mas importante de usar esta conceptualizaci贸n es que es de gran ayuda en la escalabilidad del proyecto

Genial! la verdad que da gusto tener las clases con un profe asi

Claro que que tenemos o vamos a desarrollar. Muy bien!!!

Excelente explicaci贸n @Carlos Hern谩ndez !!!

Muy buena explicaci贸n todo muy facil de entender 馃槂 a seguir aprendiendo para aportar en donde desarrollo!!

Me encant贸 la explicaci贸n!!

It鈥檚 great He said correctly 鈥淢ysql鈥 instead of 鈥淢yciqual鈥
馃槂

Diagrama de backend

Excelente!! El hacer este mismo proceso que hace el profe. De dise帽o de la arquitectura nos quita muchos dolores de cabeza!!

Que gran explicaci贸n y que gran profe!!!

Tengo una pregunta, en cada componente se esta poniendo una conexi贸n a base de datos, el ejemplo que pone sobre porque debe ser as铆 es en caso de que se tenga que cambiar la base de datos de los usuarios solo sea cambiar la base de datos del componente y listo, pero que pasa si voy a cambiar la base de datos de todo el proyecto, tocar铆a cambiar en todos los componentes y si el proyecto es muy grande seria muy tedioso.

que se debe hacer en ese caso ?

De las mejores clases que he visto.

lo mejor del cursoo鈥

驴Esta misma arquitectura la puedo aplicar para cualquier otro tipo de prroyectos?

muy buena clase gracias Maestro Carlos!!!

Diagrama de componentes

RUTAS - CONTROLADORES - ALMACENAMIENTO

Muy buena explicacion. Excelente arquitectura para un backend.

Excelente explicaci贸n

Muy bien explicado

explicaci贸n muy clara y paso a paso, excelente

Excelente explicaci贸n, gracias por tomarse el tiempo de hacer los apuntes, muy pocos profes hacen eso.

Internet - Las peticiones, de otro servidor, ordenador o tel茅fono, estas vienen desde internet,

Servidor.js - El encargado de recibir las peticiones es el server.js, este verificara que las peticiones sean correctas para entrar al servidor o cancelarlas, tiene configuraci贸n importante, base de datos, cabeceras, etc. el servidor.js manda la informaci贸n a response.js y route.js

Route.js - Este verifica a donde quiere ir la petici贸n y llamar al componente adecuado

Response.js

Componentes -

Mensajes -

Networks.js - Archivo donde ponemos todas las rutas, aqu铆 ponemos los end points e informaci贸n que tenga que ver con el protocolo http

Controller - Tiene toda la l贸gica, todo lo que sea modificar, cambiar, modificar, comprobar, se hace aqu铆

Store - Se encarga de gestionar la base de datos, aqu铆 se especifica, donde y cuando se guarda la informaci贸n

Response.js - Cada que una petici贸n sea correcta o incorrecta este modulo responde, de esta manera nos aseguramos que las respuestas tengan la mismo forma y sentido

Woooo!!! Entendiendo patrones de dise帽o 鉂わ笍.

Excelente profesor!

  • server: Recibe las peiticiones y configura nuestro servidor
  • routes: Ve hacia donde quiere ir la petici贸n y llamara al componente adecuado
  • components:
    • message: Toda lo relacionado a nuestros mensajes
      • network: Todos los endpoints y toda la informacion que tiene que ver con el protocolo http
      • controller: Tiene toda la logica de nuestro componente de mensajes (Todo lo que sea modificar el mensaje, cambiar, a帽adir, comprobaciones. 鈥淟ogica de negocio鈥)
      • store: gestionara las bases de datos (debe decir donde y como se va a guardar la informacion)

Muy buena la explicaci贸n.

馃槷 interesante.

驴Esta misma arquitectura la puedo aplicar para un backend con otros lenguajes de programaci贸n?

驴C贸mo se llama esta arquitectura? Est谩 muy interesante, y quisiera profundizar.