Envíanos tu consulta
Términos y condiciones *
*Si no puedes asistir en directo de facilitaremos un enlace para verlo en diferido
logoImagina
iconoCurso

Curso completo de Node JS

DISPONIBLE EN MODALIDAD:
Desarrolla soluciones web con Node desde la configuración inicial del entorno de desarrollo hasta el despliegue continuo, explorando temas avanzados como seguridad, gestión de bases de datos, testing y despliegue.
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient
Formación en Node JS bonificable para empresas

¿A quién va dirigido?

Desarrolladores con experiencia en Javascript y Typescript que quieran aprender a desarrollar soluciones Web con Node y Express desde cero hasta llegar a automatizar el proceso de despliegue

Objetivos

  • Comprender e instalar Node.js y NPM, explorando NVM para gestionar múltiples versiones
  • Utilizar Express para crear APIs web, configurando rutas y manejo de peticiones
  • Integrar bases de datos relacionales y NoSQL, además de implementar autenticación segura con JWT y OAuth
  • Desarrollar pruebas unitarias, documentar con Swagger y automatizar despliegues con Vercel
  • Profundizar en temas avanzados y realizar un proyecto final que integre todos los conceptos aprendidos

¿Qué vas a aprender?

Desarrolla soluciones web con Node desde la configuración inicial del entorno de desarrollo hasta el despliegue continuo, explorando temas avanzados como seguridad, gestión de bases de datos, testing y despliegue.

Requisitos

  • Tener experiencia desarrollando con HTML, CSS, Javascript (ES6 o superior) y conocer las bases de Typescript, además de haber trabajado con Git previamente
  • Tener una cuenta de Github que puedas emplear durante el curso
  • Tener Git, Docker Desktop y Visual Studio Code instalados previamente en el equipo
  • Tener un equipo, con acceso a un usuario con permisos de instalación y conexión estable a Internet

Temario del curso

tema 1

Introducción a Node y NPM

  • ¿Qué es Node?
  • Node en la actualidad y tipos de proyectos más destacables
  • Instalación de Node en su versión LTS de manera oficial
  • Verificando la versión de Node instalada en el equipo
  • ¿Es posible tener varias versiones de Node instaladas en un equipo?
  • Introducción a NVM
  • ¿Por qué es necesario poder contar con varias versiones de Node?
  • Comando de NVM para listar versiones de Node instaladas
  • Comando de NVM para instalar nuevas versiones de Node
  • Comando de NVM para usar una versión de Node en particular
  • Comando de NVM para desinstalar versiones de Node de tu equipo
  • ¿Qué es NPM?
  • ¿Qué es NPX y cuándo debemos emplearlo?
  • Verificando la versión de NPM instalada en el equipo
  • Configuración de Visual Studio Code para el desarrollo de proyectos Node
  • Plugins imprescindibles y recomendados de Visual Studio Code
  • Creación de un proyecto Node a través de comando "init" de NPM
  • Completando los campos de información de nuestro proyecto
  • Entendiendo qué es el archivo Package.json
  • Añadiendo nuestro primer archivo JavaScript en el proyecto
  • ¿Qué son los scripts NPM y cómo configurarlos en el archivo package.json?
  • Ejecución de archivo Javascript con Node desde la consola/terminal
  • Creación de script NPM para ejecutar un archivo Javascript
  • Ejecutando script NPM con el comando "npm run"
  • Depuración de código Javascript desde Visual Studio Code
  • Configurar puntos de ruptura y visualización de variables durante la depuración
  • Introducción a Babel
  • Creación de archivo configuración de Babel a través de comandos
  • Análisis de configuración de Babel para trabajar con distintas versiones de EcmaScript
  • Trabajando con la última versión de Ecmascript en proyectos Node
  • Trabajando con módulos y clases en proyectos Node
  • Importación y exportación en proyectos Node
  • Módulos built-in de Node más comunes: fetch, Filesystem, Path
  • Creación y utilización de nuestros propios módulos
  • ¿Qué son los paquetes NPM?
  • Analizando el repositorio oficial de NPM y sus paquetes más destacables
  • Comando NPM para realizar instalaciones desde la consola
  • Instalaciones de paquetes de desarrollo y producción
  • Analizando el package.json para el control de versiones de los paquetes necesarios
  • ¿Qué hacer si tenemos problemas con las versiones de los paquetes NPM instalados?
  • Reinstalación/Actualización de paquetes y solución de errores en proyectos Node
  • Configuración para builds de proyectos Node
  • Creación de un script de build de desarrollo y de producción
  • Analizando las builds y sus archivos generados
  • Creación de plantilla de proyectos Node y Babel para Github
  • ¿Por qué pasarse a desarrollar en Typescript?
  • Creación de plantilla deproyectos Node con Typescript
  • Configuraciones fundamentales de un proyecto que emplee Typescript
  • Revisando el proceso de transpilación
  • Trabajando con tipos de datos, enumerados y creación de tipos propios
  • Diferencias y consejos fundamentales de desarrollo con Typescript
  • Gestión de librerías en un proyecto Typescript e instalación de @types
tema 2

Desarrollo de Web APIs con Express

  • ¿Qué es Express?
  • Instalación y puesta en marcha
  • Creación de archivo principal de Express
  • Creación de la ruta base de nuestro proyecto Express
  • Especificando el puerto de despliegue
  • Especificando un mensaje "Hola Mundo" de respuesta JSON
  • Especificando el código de estado a nuestra respuesta
  • Desplegando la aplicación y accediendo desde el navegador
  • Iniciando Postman y probando la ruta base del proyecto
  • Introducción a la estructura de proyectos Express
  • Introducción a las variables de entorno
  • Estableciendo archivos de variables de entorno
  • Declaración de variables de entorno
  • Configuración de archivo .gitignore
  • Publicando proyecto Express en Github
  • Estableciendo ramas de desarrollo y producción
  • Alternativas a Express más destacables: Koa, Fastify y Adonis
tema 3

Peticiones, Sistema de Enrutado, Controladores y Respuestas

  • Análisis de los verbos HTTP: GET, POST, PUT y DELETE
  • Otros verbos HTTP y sus utilidades
  • Recibiendo peticiones desde un cliente
  • Especificando una ruta "/api" como base para nuestro proyecto
  • Declaración de rutas en un proyecto Express
  • Declarando una misma ruta para distintos verbos
  • Accediendo a la cabecera de la petición
  • Accediendo al cuerpo de la petición
  • Configurando la respuesta al cliente
  • Distintos tipos de respuestas: Texto, JSON y HTML
  • Recepción de parámetros por Query Params
  • Redirección de rutas
  • Estructura de proyectos Express
  • ¿Qué es un controlador?
  • Declaración de controladores en proyectos Express
  • Indicando el uso de un controlador
  • Depurando la ejecución de un controlador
  • Reutilización de controladores
  • Buenas prácticas en la estructuración de rutas y controladores
tema 4

Gestión de Peticiones y respuestas CRUD

  • Estableciendo una base de datos lite como introducción
  • Creación de rutas para peticiones de Creación (C)
  • Códigos de estado para creaciones exitosas y erróneas
  • Redirección de rutas para devolver elemento creado correctamente
  • Creación de rutas para lectura y consultas con Query Params (R)
  • Códigos de estado para lecturas exitosas y erroróneas
  • Creación de rutas para peticiones de Actualización (U)
  • Códigos de estado para actualizaciones exitosas y erroróneas
  • Creación de rutas para peticiones de Borrado (D)
  • Códigos de estado para borrados exitosos y erroróneas
tema 5

Persistencia en bases de datos relacionales: PostgreSQL

  • Introducción a bases de datos relacionales
  • Instalación y configuración básica de PostgreSQL
  • Iniciando servidor PostgreSQL localmente
  • Usando herramientas de vislauzación de datos de PostgreSQL: BeeKeeper
  • Configuración en proyecto Express para conexión con PostgreSQL
  • ¿Qué es un ORM? Ventajas e inconvenientes.
  • Utilización de un ORM (Sequelize)
  • Operaciones CRUD en proyecto Express con PostgreSQL como base de datos
  • Dockerización de proyecto Express con PostgreSQL
  • Introducción a Render como solución cloud
  • Creación de una cuenta gratuita en Render
  • Creación y configuración básica de una base de datos PostgreSQL en Render
  • Conexión desde Express con PostgreSQL de Render
  • Añadiendo variables de entorno al proyecto para las conexiones y api keys
tema 6

Persistencia en bases de datos NoSQL: MongoDB

  • Introducción a bases de datos no relacionales
  • Breve introducción a MongoDB
  • Colecciones y documentos BSON
  • Instalación y configuración básica de MongoDB
  • Iniciando servidor MongoDB localmente y especificando ubicación "dbpath"
  • Iniciando Mongo Shell como cliente
  • Introducción a Mongo Compass
  • Iniciando Mongo Compass para visualizar bases de datos y colecciones
  • Accediendo a Mongo Shell desde Mongo Compass
  • Validación y modelado de datos
  • ¿Qué es un ODM?
  • Ventajas e inconvenientes en el uso de ODMs
  • Utilización de un ODM (Mongoose)
  • Operaciones CRUD en proycto Express con MongoDB como base de datos
  • Dockerización de proyecto Express con MongoDB
  • Introducción a Mongo Atlas como solución cloud
  • Creación de una cuenta gratuita en MongoDB para usar Mongo Atlas
  • Creación y configuración básica de una base de datos MongoDB en Mongo Atlas
  • Conexión desde Express con Mongo DB Atlas
  • Añadiendo variables de entorno al proyecto para las conexiones y api keys
tema 7

Middlewares

  • ¿Qué es un Middleware y qué uso podemos darle?
  • Declarando Middlewares en un proyecto Express
  • Espeficicando el uso de un Middleware en una ruta de nuestro proyecto
  • Depuración de código middleware
  • Redirección de rutas
  • Buenas prácticas en la gestión de Middlewares
tema 8

Autenticación y autorización

  • Middlewares de autenticación
  • Introducción a JWT y a los Bearer Tokens
  • Configuración de Middleware y rutas para autenticación por JWT
  • Controlando los JWT emitidos por el cliente en las cabeceras
  • Controlando las sesiones de usuario y caducidad de los JWT
  • Añadiendo un sistema RBAC para controlar el acceso
  • Introducción al sistema de autenticación OAuth
  • Diferencias entre OAuth y OAuth2
  • Configuración de Middleware y rutas para autenticación por OAuth
  • Controlando las sesiones de usuario de OAuth
  • Persistiendo la información de sesiones en bases de datos
  • Introducción a la autenticación con redes sociales
  • Introducción a PassportJS como middleware de autenticación
  • Instalación de PassportJS y configuraciones esenciales
  • Estrategias de autenticación más interesantes de PassportJS
  • Permitiendo autenticación con PassportJS, JWT y Bearer Tokens
  • Permitiendo autenticación con PassportJS con OAuth y OAuth2
  • Permitiendo autenticación con PassportJS y Google OAuth2
  • Permitiendo autenticación con PassportJS y Github
  • Realizando pruebas de autenticación y protección de rutas
tema 9

Gestión de Errores desde el Servidor

  • Análisis de los códigos de estado HTTP en las respuestas
  • Códigos de estado de Error más comunes
  • ¿Cómo transmitir un error al cliente?
  • Gestión de errores 300
  • Gestión de errores 400
  • Gestión de errores 500
tema 10

Testing unitario e integración

  • Introducción a la redacción de tests unitarios y de integración en proyectos Node
  • ¿Qué es el coverage de un proyecto?
  • Librerías de testing más destacables
  • Configuración fundamental y técnicas para garantizar una buena cobertura de pruebas
  • Redacción de tests y ejecución
  • Análisis de resultados y fases de refactorización de código
  • ¿Cómo redactar pruebas de integración?
  • Intregrando nuestros tests en un proceso CI/CD
  • Consejos a la hora de trabajar con tests en un proyecto
tema 11

Eslint y Documentación de proyecto Node con Swagger

  • Documentando la puesta en marcha de un proyecto Node en un README.md
  • Introducción a EsLint y habilitando plugin de Visual Studio Code
  • Creación de un archivo de configuración EsLint a nivel de proyecto vía comando
  • Introducción a OpenAPI y a Swagger
  • Instalación y configuraciones esenciales
  • Documentación de modelos
  • Documentación de rutas y controladores
  • Añadiendo comentarios para mayor información
  • Script de generación de documentación Swagger y despliegue
  • Visualización de documentación vía web
  • Realizando pruebas de peticiones desde la documentación generada
tema 12

Consideraciones de seguridad en aplicaciones Node con Express

  • ¿Qué es CORS y por qué debemos configurarlo?
  • Configuración recomendada de CORS
  • Problemas derivados de una mala configuración de CORS
  • ¿Cómo habilitar HTTPS localmente?
  • Trabajando con certificados localmente
  • Desplegando en https un proyecto local
  • Módulos vulnerables y desactualizados en Node
  • Protección ante ataques de fuerza bruta
  • Protección ante ataques de denegación de servicios
  • Protección ante ataques de SQL Injection
  • Protección ante ataques de JSON Injection
  • Uso seguro de cookies y protección ante ataques CSRF
tema 13

Logs, health checks y monitorización

  • La importancia del buen uso de logs en aplicaciones web
  • Soluciones de Logs disponibles para Node y Express
  • Instalaciones y configuraciones en Express para gestión de logs
  • Herramientas más interesantes de análisis de logs disponibles en el mercado
  • Emisión de logs desde nuestra aplicación
  • Niveles de logs y buenas prácticas
  • Persistiendo logs en una tabla de la base de datos
  • ¿Qué son los health checks y por qué debemos realizarlos?
  • Creación de health checks para aplicaciones Node con Express
  • Introducción a la monitorización de aplicaciones web
  • Herramientas más interesantes para la monitorización de recursos y rendimiento
  • Habilitando la monitorización de una aplicación Node con Express
tema 14

Composición de vistas con HTML de plantillas

  • Introducción de plantillas, HandleBars y PUG
  • Integración Handlebars con Express
  • Integración de PUG con Express
  • Sintaxis PUG, creación de HTML con PUG
  • Javascript en plantillas PUG
  • Reutilización: mixins, bloques y herencia en PUG
  • Breve introducción y primeros pasos en Next, Nuxt y Nest como soluciones actuales
  • Ventajas del Server Side Rendering y su uso actual
  • Otras alternativas destacables en el mercado
tema 15

Comunicación en tiempo real

  • ¿Qué son los WebSockets y para qué sirven?
  • Introducción a Socket IO y sus fundamentos
  • Instalación y configuración de Socket IO
  • Implementación de websockets
  • Comprobando la comunicación bidireccional
tema 16

Builds y Despliegues

  • Analizando el proceso de builds y entornos en Node
  • Configuración y definición de carpeta para builds en Node
  • Creación de Scripts de builds para distintos entornos
  • Análisis de resultado de una build
  • Breve introducción a Vercel y creación de cuenta gratuita
  • Creación de un proyecto Node en Vercel
  • Asociando un proyecto Vercel a una rama de repositorio Github
  • Configuración y scripts para el despliegue de Node en Vercel
  • Configurando variables de entorno y api keys en el proyecto Render
  • Automatizando la integración (CI) desde Vercel
  • Comprobando despliegues y probando la aplicación Express en producción
  • Gestión de errores, rollbacks y redespliegues en Vercel
tema 17

Proyecto Final

  • Definición del proyecto
  • Identificación de requisitos
  • Implementación
  • Documentación y pruebas
  • Creación de proyecto en Vercel
  • Trabajando con variables de entorno en Vercel
  • Automatización de publicaciones y otras integraciones
  • Consejos finales del curso

Curso de Node JS bonificado para Empresas a través de FUNDAE

Somos entidad organizadora de FUNDAE, todas nuestras formaciones se pueden bonificar hasta el 100%, sujeto a vuestro crédito disponible y a cumplir con todos los requisitos de realización establecidos por la Fundación Estatal para el Empleo.

 

Si desconoces el funcionamiento de las bonificaciones, ofrecemos el servicio de gestión en FUNDAE, consúltanos cualquier duda que te surja.

Descargar Guía FUNDAE
imagenFundae
iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient