¡Hola! Si quieres aprender Node.js y Express, estás en el lugar correcto.

En este artículo encontrarás una breve introducción al desarrollo web back-end, Node.js y Express. Aprenderás por qué son herramientas muy poderosas para desarrollar servidores y por qué deberías aprenderlos si tu meta es adentrarte en el mundo del desarrollo web back-end.

Luego, encontrarás un curso de 8.5 horas de Node.js y Express en el canal de YouTube de freeCodeCamp en español donde puedes aprender los fundamentos en español y construir un proyecto paso a paso.

¡Comencemos! ✨

🔸 ¿Qué es el desarrollo web back-end?

El desarrollo web ha transformado nuestro mundo. Cada día accedemos a internet para encontrar información, aprender, comprar productos, compartir opiniones y comunicarnos con familiares y amigos.

Básicamente, nuestras vidas no serían lo mismo sin los sitios web.

¿Estás de acuerdo? 🙂

Si estás de acuerdo, entonces aprendiendo desarrollo web puedes desarrollarte en una carrera muy gratificante y puedes impactar las vidas de miles o millones de usuarios desarrollando aplicaciones web.

Hablemos sobre las distintas áreas del desarrollo web.

Desarrollo web front-end vs. desarrollo web back-end

image-7

Los desarrolladores que crean estas aplicaciones web asombrosas son llamados desarrolladores web. Pueden especializarse para desarrollar partes específicas de una aplicación web:

  • Los desarrolladores web front-end implementan la parte de la aplicación web con la cual los usuarios interactúan directamente. Crean la parte visible de las plataformas asombrosas que usamos cada día. En la analogía de la tienda que puedes ver en la imagen anterior, el front-end estaría representado por la parte de la tienda que los clientes pueden ver.
  • Los desarrolladores web back-end implementan toda la funcionalidad que los usuarios no ven, tales como los servidores, bases de datos y todas sus interacciones con el front-end de la aplicación.
  • Los desarrolladores web full-stack se encargan de ambas áreas. Tienen conocimiento extenso sobre desarrollo web front-end y back-end.

Interesante, ¿cierto? ✨

Veamos más detalles sobre el desarrollo web back-end porque esta es una de las principales aplicaciones de Node.js y Express.

El modelo cliente-servidor

El internet está basado en el modelo o la arquitectura cliente-servidor, en la cual dos dispositivos (el cliente y el servidor) se comunican entre sí.

image-173
Diagrama del modelo cliente-servidor. Cliente (izquierda). Servidor (derecha).

El cliente

Cuando intentas acceder a una página web en tu navegador, el navegador (cliente) envía una solicitud HTTP al servidor.

El servidor

El servidor es un programa que escucha solicitudes y genera respuestas apropiadas. Estas respuestas incluyen:

  • Enviar información al cliente.
  • Ejecutar tareas o procesos.
  • Trabajar con la información de una base de datos y/o actualizarla.

Por ejemplo, podemos agregar un usuario nuevo a una base de datos al enviar una solicitud al servidor y el servidor debe realizar las actualizaciones correspondientes en la base de datos.

image-175
Cliente (izquierda) - Servidor (centro) - Base de datos (derecha)

Desarrollar y mantener servidores es una de las tareas principales de los desarrolladores back-end y esa es precisamente la función principal de Node.js y Express.

🔹 ¿Qué es Node.js?

Node.js es un runtime de JavaScript asíncrono y basado en eventos desarrollado en base al motor V8 de JavaScript de Chrome. Nos da todas las herramientas que necesitamos para ejecutar JavaScript en el terminal sin un navegador web (browser).

💡 Dato: Antes de Node.js, no podíamos ejecutar programas de JavaScript sin un navegador web. Solo los navegadores habían sido diseñados para esta tarea ya que JavaScript es uno de los principales lenguajes de programación de la web.

Lo asombroso de Node.js es que nos permite construir aplicaciones escalables con alto rendimiento.

De acuerdo a su documentación oficial:

Los usuarios de Node.js están libres de preocuparse por el bloqueo del proceso, ya que no existe. Casi ninguna función en Node.js realiza I/O directamente, por lo que el proceso nunca se bloquea. Por ello, es muy propicio desarrollar sistemas escalables en Node.js.

🚩 Es importante resaltar que Node.js no es un:

  • Lenguaje de programación.
  • Framework.
  • Librería (biblioteca).

Es un runtime de JavaScript desarrollado para ejecutar código de JavaScript.

¿Por qué deberías aprender Node.js?

Ahora que ya sabes más sobre Node.js, veamos por qué deberías aprenderlo.

Node.js es una de las tecnologías web más populares entre los desarrolladores, incluyendo principiantes que están aprendiendo a programar y profesionales.

node-logo
Logo de Node.js

La popularidad de Node.js es asombrosa. De acuerdo a la encuesta 2022 Stack Overflow Developer Survey, es una de las tecnologías web más populares usadas por los que están aprendiendo a programar y por desarrolladores profesionales.

Cuando a los encuestados se les preguntó cuáles frameworks web o tecnologías web habían usado constantemente el año pasado y con cuáles querían trabajar el próximo año, Node.js obtuvo un 47.12% de los votos.

💡 Dato: ¡casi la mitad de las 58,743 respuestas!

image-8
Los resultados de la categoría de Web Frameworks and technologies de la encuesta 2022 Stack Overflow Developer Survey. Node.js es el primero con 47.12% de las respuestas.

Ese porcentaje fue incluso mayor entre los encuestados que estaban aprendiendo a programar:  52.86%. Asombroso, ¿verdad? 😁

image-9
Los resultados de la categoría de Web Frameworks and technologies de la encuesta 2022 Stack Overflow Developer Survey cuando se selecciona Learning to Code. Node.js es el primero con 52.86% de las respuestas.

Esto demuestra el impacto que Node.js está teniendo en el área del desarrollo web. Al aprender Node.js estarás invirtiendo tu tiempo y recursos sabiamente. Adquirirás habilidades valiosas y altamente demandadas en este campo.

🔸 ¿Qué es Express?

Si tu meta es desarrollar servidores con Node.js, el proceso puede ser mucho más fácil si usas Express, un framework de aplicaciones web específicamente diseñado para Node.js.

Según la documentación oficial de Express:

Express es un framework de aplicaciones web de Node.js mínimo y flexible que provee un conjunto robusto de herramientas para aplicaciones web y móviles.

Original en inglés:

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.

💡 Dato: Express incluye muchas herramientas que puedes usar para escribir código más conciso, fácil de leer y fácil de mantener. Confía en mi. Cuando comiences a trabajar con Express, nunca querrás dejarlo.

Express tiene muchos métodos HTTP útiles y middleware que puedes usar para crear APIs robustas (Application Programming Interfaces), las cuales son fundamentales para el desarrollo web back-end y full-stack.

En la encuesta 2022 Stack Overflow Developer Survey, Express fue la cuarta tecnología o framework web más usado con 22.99% de los votos:

image-10
Los resultados de la categoría Web Frameworks and technologies de la encuesta 2022 Stack Overflow Developer Survey

¡Genial! Ya sabes por qué deberías aprender Node.js y Express. Te prometo que de verdad merecerá tu tiempo y dedicación. ✨

🔹 Contenido del curso

Ahora veamos lo que aprenderás durante el curso.

💡 Dato: para tomar el curso, debes tener conocimiento previo de JavaScript. Si necesitas repasar este lenguaje de programación en español, te recomiendo tomar el curso de JavaScript en el canal de YouTube de freeCodeCamp en español.

Introducción a Node.js y conceptos básicos

  • Introducción a Node.js
  • Conceptos básicos de desarrollo web back-end.
  • Aplicaciones de Node.js
  • APIs y para qué se usan.
  • Ventajas de Node.js.
  • Descargar e instalar Node.js.
  • Confirmar que Node.js fue instalado exitosamente.
  • Verificar tu versión de Node.js.
  • El REPL de Node.js.

Tu primer proyecto de Node.js y módulos

  • ¿Qué es un módulo? Conceptos y ventajas.
  • Exportar e importar módulos.
  • Exportar varios elementos de un módulo de JavaScript.
  • Ejecutar un archivo JavaScript con el comando node.
  • Módulos core de Node.js.
  • El módulo console.
  • El módulo process.
  • El módulo os.
  • El módulo fs.
  • El módulo timers.

Introducción a npm y JSON

  • ¿Qué es npm?
  • Conceptos básicos de npm.
  • Inicializar un paquete con npm init.
  • El archivo package.json.
  • Introducción al formato JSON.
  • Instalar y desinstalar paquetes con npm.
  • El archivo package-lock.json.

Eventos y operaciones asíncronas

  • ¿Qué es un evento?
  • Eventos en Node.js.
  • Eventos y procesos síncronos y asíncronos.
  • Promesas y funciones callback en JavaScript.
  • Promesas, .then() y .catch().
  • Funciones asíncronas con async y await.

Servidores con Node.js y el protocolo HTTP

  • El modelo cliente-servidor.
  • Formato de solicitudes y respuestas HTTP.
  • Métodos o verbos HTTP:  GET, POST, PUT, DELETE.
  • Códigos de estado HTTP.
  • El módulo http en Node.js.
  • Crear un servidor en Node.js.
  • Los objetos req y res.
  • Estructura de una URL.
  • Routing (Enrutamiento) en Node.js.

Nodemon

  • ¿Qué es Nodemon?
  • Cómo instalarlo globalmente.
  • Cómo usarlo para actualizar aplicaciones de Node.js automáticamente.
  • Conceptos importantes: CRUD, REST, API.

Express

  • Cómo instalar Express y cómo crear un proyecto.
  • Routing en Express.
  • Express y Nodemon.
  • Cómo manejar varias rutas.
  • Parámetros de URL y rutas dinámicas.
  • Middleware en Express.
  • Manejar solicitudes GET, POST, PUT y DELETE.
  • Parámetros query.
  • Routers en Express.

🔸 Proyecto de Node.js y Express

Durante el curso aprenderás con ejemplos prácticos, así que aplicarás todo lo que aprendas paso a paso.

image-3
Proyecto que crearemos con Node.js y Express

Aprenderás cómo trabajar con promesas con un ejemplo de pizza 🍕, cómo trabajar con JavaScript asíncrono, y desarrollarás una API y un servidor básico con Node.js para enviar información sobre cursos de programación y matemáticas al cliente.

Luego, adaptarás este servidor para trabajar con Express. Aplicarás conceptos que has aprendido y aprenderás nuevos conceptos paso a paso para crear un servidor que manejará varias rutas, parámetros y distintos tipos de solicitudes HTTP.

📌 Curso de Node.js y Express en YouTube

Genial. Ahora que ya sabes más sobre Node.js y Express y lo que aprenderás durante el curso, te invito a tomar el curso completo en español:

✍️ Curso creado por Estefania Cassingena Navone (Twitter: @EstefaniaCassN, YouTube: Coding with Estefania).

Sinceramente espero que te guste el curso y que te ayude a tomar tus primeros pasos en el mundo de Node.js, Express y desarrollo web back-end.

También te invitamos a tomar nuestros cursos de programación en español: