Aprende NestJs desde 0
Aprende NestJs (v10) de forma práctica
Lo que serás capaz de hacer
Nest ( NestJS ) es un framework para construir aplicaciones eficientes y escalables de lado servidor con Node.js. NestJS soporta TypeScript y combina OOP (Object Oriented Programming), FP (Functional Programming) y FRP (Functional Reactive Programming). NestJS proporciona un nivel de abstracción por encima de estos marcos comunes de Node.js, pero también expone sus API directamente al desarrollador. Esto les da a los desarrolladores la libertad de usar la gran cantidad de módulos de terceros que están disponibles para la plataforma subyacente. Usaremos Docker para dockerizar servicios como MySQL , Oracle o MongoDB Veremos los siguientes puntos: Decoradores : vemos cómo utilizar los decoradores como GET, POST, PUT, PATCH y DELETE. CRUD: en varias aplicaciones haremos un CRUD (Create Read Update Delete). Swagger : nos permite documentar nuestros endpoints. Conexion MySQL: crearemos un módulo para conectar MySQL con NestJS usando TypeORM. Conexion Oracle: crearemos un módulo para conectar Oracle con NestJS usando TypeORM. Conexion MongoDB: crearemos un módulo para conectar MongoDB con NestJS usando mongoose. Serán compatibles con MongoDB Community Server y MongoDB Atlas. Autenticación: creamos un módulo de autenticación para crear nuestros JWT y dar seguridad a nuestro backend. Subir archivos multimedia: aprenderemos como podemos subir archivos y gestionarlos. Cron : aprenderemos a crear crones para gestionar tareas cíclicas. Logs: implementamos un sistema de logs para depurar nuestro programa. Emails: crearemos un módulo para enviar emails usando nodemailer usando un módulo dinámico. Microservices: explicaremos cómo funcionan los microservicios en NestJS haciendo un ejemplo con dos backends comunicándose entre ellos con microservicios. Despliegue: vemos cómo podemos compilar nuestras aplicaciones y ejecutarlas en producción. Utilizaremos la versión 10 de NestJs. ¡Os espero en el curso!
- Crear tu propia aplicación NestJs
- Manejar decoradores, controladores y servicios
- Implementar autenticación, logs y conexiones con diferentes SGBD.
- Documentar nuestros endpoints con Swagger
- Usar Docker para dockerizar servicios como MySQL, Oracle o MongoDB
- Desplegar tu aplicación en un servidor
Temario
UNIDAD 1 - Introducción · 2 leccionesUNIDAD 1 - Introducción
UNIDAD 1 - Introducción
- ¡Pregunta!
- Sobre las calificaciones tempranas
UNIDAD 2 - Sobre Nestjs · 1 leccionesUNIDAD 2 - Sobre Nestjs
UNIDAD 2 - Sobre Nestjs
- Documentación oficial
UNIDAD 3 - Preparación del entorno Windows · 4 leccionesUNIDAD 3 - Preparación del entorno Windows
UNIDAD 3 - Preparación del entorno Windows
- Instalar Visual Studio Code
- Instalar Node.js
- Instalar postman
- Instalar Docker
UNIDAD 4 - Preparación del entorno Linux · 4 leccionesUNIDAD 4 - Preparación del entorno Linux
UNIDAD 4 - Preparación del entorno Linux
- Instalar Visual Studio Code
- Instalar Node.js
- Instalar postman
- Instalar Docker
UNIDAD 5 - Instalación de NestJs · 1 leccionesUNIDAD 5 - Instalación de NestJs
UNIDAD 5 - Instalación de NestJs
- Instalación de @nestjs/cli
UNIDAD 6 - Configuración Postman · 3 leccionesUNIDAD 6 - Configuración Postman
UNIDAD 6 - Configuración Postman
- Explicando como funciona postman
- Creando un environment
- Exportar e importar variables del entorno
UNIDAD 7 - A tener en cuenta · 1 leccionesUNIDAD 7 - A tener en cuenta
UNIDAD 7 - A tener en cuenta
- A tener en cuenta con los proyectos descargados
UNIDAD 8 - REST API de una lista de nombres · 16 leccionesUNIDAD 8 - REST API de una lista de nombres
UNIDAD 8 - REST API de una lista de nombres
- Resultado esperado
- ¿Que es una REST API?
- Creando nuestro proyecto
- Creando nuestro módulo
- Creando nuestro controlador
- Creando nuestro servicio
- Creando e inicializando nuestro array de nombres
- Operación Create con los decoradores @Post y @Body
- No insertar un nombre si ya existe
- Operación Read con el decorador @Get
- Mejorando la operación Read con el decorador @Query
- Operación Update con los decoradores @Put y @Param
- Operación Delete con los decoradores @Delete y @Param
- Limpiando todos los nombres
- Exportando los endpoints de postman
- Descarga del proyecto
UNIDAD 9 - Swagger · 9 leccionesUNIDAD 9 - Swagger
UNIDAD 9 - Swagger
- Resultado
- Instalar swagger
- ApiTags
- ApiOperation
- ApiParam
- ApiQuery
- ApiPost
- Probando nuestra documentación completamente
- Descarga del proyecto
UNIDAD 10 - Usuarios · 14 leccionesUNIDAD 10 - Usuarios
UNIDAD 10 - Usuarios
- Resultado esperado
- Creando el proyecto
- Creando nuestro módulo, controlador y servicio
- Creando nuestro primer dto
- Validando la entrada de parametros
- Global Pipe
- Creando usuarios
- Pipe parseDate
- Obteniendo usuarios filtrados
- Actualizando usuarios
- Eliminando usuarios
- Documentando nuestros endpoints
- Documentando nuestro dto
- Descarga del proyecto
UNIDAD 11 - Instalación MySQL · 3 leccionesUNIDAD 11 - Instalación MySQL
UNIDAD 11 - Instalación MySQL
- Descargar imagen MySQL
- Instalar MySQL Workbench en Windows
- Instalar MySQL Workbench en Linux
UNIDAD 12 - Conexion MySQL · 64 leccionesUNIDAD 12 - Conexion MySQL
UNIDAD 12 - Conexion MySQL
- Resultado esperado
- Diferencia entre un entity y un dto
- Reinicio de tablas
- Creando un proyecto
- Instalando TypeORM
- ¡A tener en cuenta en el proximo video!
- Configuración del ORM con ormconfig.json
- Creando el módulo Product
- Creando nuestro product-dto
- Creando nuestro product.entity
- Inyectando nuestro repositorio en productService
- Creando un producto
- Devolviendo un producto por su id
- Mejorando la validación del producto al crearlo
- Devolviendo todos los productos
- Devolviendo todos los productos borrados
- Actualizando productos
- Borrado suave de productos
- Recuperando productos borrados
- Creando stock-dto
- Actualizando el stock de un producto
- Incrementando el stock de un producto
- Decrementando el stock de un producto
- Documentando los endpoints de product
- ApiResponse
- Documentando dto
- Creando el módulo Client
- Creando client-dto
- Creando client.entity
- Creando address-dto
- Creando address.entity
- Relación OneToOne con typeorm
- Crear cliente
- Validar si existe o no el cliente
- Validar la dirección
- Obtener todos los clientes
- Obtener un cliente por su id
- Actualizar un cliente
- Validar email al actualizar
- Validando la dirección al actualizar cuando no tiene id
- Validando la dirección al actualizar cuando tiene id
- Borrando la dirección desreferenciada
- Eliminar un cliente
- Creando el módulo Order
- Creando order-dto
- Creando order.entity
- Relación ManyToOne/OneToMany
- Relación ManyToMany
- Completando order-dto
- Importando el módulo Cliente y Producto
- Creando ordenes
- Obtener una orden por su id
- Obtener órdenes pendientes
- Obtener órdenes confirmadas
- ¡A tener en cuenta antes del proximo video!
- Filtrando órdenes confirmadas (parte 1)
- Filtrando órdenes confirmadas (parte 2)
- Confirmando órdenes
- Obtener órdenes de un cliente
- Documentar dto
- Documentar endpoints de clientes (parte 1)
- Documentar endpoints de clientes (parte 2)
- Documentar endpoints de órdenes
- Descarga del proyecto
UNIDAD 13 - Instalar oracle · 3 leccionesUNIDAD 13 - Instalar oracle
UNIDAD 13 - Instalar oracle
- Descargar imagen docker
- Instalar SQLDeveloper en Windows
- Instalar SQLDeveloper en Linux
UNIDAD 14 - Conexion Oracle · 6 leccionesUNIDAD 14 - Conexion Oracle
UNIDAD 14 - Conexion Oracle
- Crear un usuario en Oracle
- Creando nuestro proyecto
- ¡Atencion antes del siguiente video!
- Adaptando el anterior proyecto
- Probando el funcionamiento con postman
- Descarga del proyecto
UNIDAD 15 - Instalación de Mongo DB · 3 leccionesUNIDAD 15 - Instalación de Mongo DB
UNIDAD 15 - Instalación de Mongo DB
- Descargar imagen docker
- Instalar MongoDB Compass en Windows
- Instalar MongoDB Compass en Linux
UNIDAD 16 - Conexion Mongo con moongose · 57 leccionesUNIDAD 16 - Conexion Mongo con moongose
UNIDAD 16 - Conexion Mongo con moongose
- Resultado esperado
- Creando nuestro proyecto
- Instalando @nestjs/mongoose
- Configuration
- Creando nuestra configuración en ficheros env
- Configurando nuestro entorno de desarrollo
- Conectar con mongo usando los datos de la configuración
- Creando el modulo Permissions
- Creando permission-dto
- Schema permission
- Inyectando el servicio conexión de MongoDB en los permisos
- Creando permissions
- Obteniendo todos los permissions
- Filtrando permissions por su nombre
- Creando updated-permission-dto
- Actualizando permissions
- Borrando permissions
- Documentando permissions
- Creando el modulo Roles
- Creando role-dto
- Schema role
- Inyectando el modelo de MongoDB en los roles
- findPermissionByname
- Creando roles
- Obteniendo roles
- Filtrando roles
- Buscar roles por nombre
- Actualizando roles
- Añadiendo permissions al role
- Borrando permissions al role
- Borrando roles
- Documentación de roles
- Creando el modulo User
- Creando user-dto
- Schema User
- Inyectando el modelo de MongoDB en los usuarios
- Creando usuarios
- Obtener un usuario por email
- Obteniendo usuarios
- Paginación de usuarios
- Pipe greaterZero
- Ordenación de usuarios
- Obtener un usuario por usercode
- Actualizando usuarios
- Creando user-role-dto
- Añadir un rol al usuario
- Borrar un rol al usuario
- Borrando usuarios
- Obteniendo usuarios borrados
- Obteniendo usuarios no borrados
- Mejorando la parte de los GETs
- Restaurando usuarios
- Contar el número de usuarios con un rol
- forwardRef
- No borrar el role si hay usuarios con ese rol
- Documentación usuarios
- Descarga de la practica
UNIDAD 17 - Mongo Atlas · 6 leccionesUNIDAD 17 - Mongo Atlas
UNIDAD 17 - Mongo Atlas
- Creando una cuenta en Mongo Atlas
- Preparando nuestro proyecto
- Conectando Mongo Atlas con Mongo Compass
- Adaptando nuestra conexion para Mongo Atlas
- Probando nuestros endpoints
- Descarga del proyecto
UNIDAD 18 - Reto NestJS · 1 leccionesUNIDAD 18 - Reto NestJS
UNIDAD 18 - Reto NestJS
- Descripción del reto
UNIDAD 19 - Autenticación · 28 leccionesUNIDAD 19 - Autenticación
UNIDAD 19 - Autenticación
- Resultado esperado
- Creando nuestro proyecto
- Configuración
- Conexión MongoDB
- Creando el módulo de users
- Creando user-dto
- Schema User
- Inyectando el modelo de usuario
- Creando usuarios
- Encriptando contraseñas
- Obteniendo usuarios
- Obteniendo un usuario por su email
- Poblar usuarios
- Creando auth module
- Mejorando la configuración
- Creando auth-credentials-dto
- Passport
- Importando JwtModule usando nuestro secretKey
- Estrategia JWT
- Validar Token
- Validar credenciales
- Login
- jwt.io
- Protegiendo los endpoints del módulo user
- Devolviendo datos del usuario logueado
- Documentando nuestros endpoints
- Añadiendo autorización a swagger
- Descarga del proyecto
UNIDAD 20 - Subir archivos multimedia · 15 leccionesUNIDAD 20 - Subir archivos multimedia
UNIDAD 20 - Subir archivos multimedia
- Resultado esperado
- Creando nuestro proyecto
- Creando nuestro módulo
- MulterModule
- Subir un archivo
- Subiendo un archivo con postman
- Subir varios archivos a la vez
- Limitando el tamaño de los ficheros
- Solo subir imágenes
- Mejorando donde almacenar los archivos
- Cambiar el nombre de los ficheros al subirlos
- Descargar un archivo
- Documentando nuestros endpoints
- Subir archivos en Swagger
- Descarga del proyecto
UNIDAD 21 - Cron · 14 leccionesUNIDAD 21 - Cron
UNIDAD 21 - Cron
- Resultado esperado
- Creando nuestro proyecto
- Creando módulo cron
- Instalando @nestjs/schedule
- Crontab guru
- Creando crons
- Desactivando un cron
- Instalando @types/cron
- Activando un cron
- Devolver todos los nombres de los crons
- Desactivando todos los crons a la vez
- Activando todos los crons a la vez
- Documentando nuestros endpoints
- Descarga del proyecto
UNIDAD 22 - Logs · 15 leccionesUNIDAD 22 - Logs
UNIDAD 22 - Logs
- Resultado esperado
- Creación del proyecto
- Reutilizando el proyecto anterior
- Instalar Winston
- Creando nuestro módulo Logger de forma global
- Creando nuestro servicio
- Formato de texto
- Formato de fecha
- Creando nuestros logger
- Arrancando nuestro logger
- Usando LoggerService
- Instalar Winston rotate
- Rotar logs por días
- Usar console.log como logger
- Descarga del proyecto
UNIDAD 23 - Emails · 16 leccionesUNIDAD 23 - Emails
UNIDAD 23 - Emails
- Resultado esperado
- Creando nuestro proyecto
- Creando nuestro módulo
- Creando MessageDto
- Validando el interior de un array
- EmailConfig
- Módulo dinamico
- Instalar nodemailer
- Creando un endpoint para enviar un email
- Configurando nuestro módulo para enviar correos con gmail
- Configurar gmail
- Enviar correos con nodemailer
- Testeo de envio de email
- Configurando nuestro módulo para enviar correos con outlook
- Documentación
- Descarga del proyecto
UNIDAD 24 - Microservicios · 16 leccionesUNIDAD 24 - Microservicios
UNIDAD 24 - Microservicios
- Resultado esperado
- ¿Que es un microservicio?
- Creando nuestros proyectos
- Instalar las dependencias necesarias
- Creando los módulos necesarios en el backend 1
- Creando los módulos necesarios en el backend 2
- Creando nuestros microservicios
- Creando la conexión de nuestros microservices
- Creando un endpoint para mandar un mensaje
- Patterns
- MessagePattern (backend 1 al backend 2)
- MessagePattern (backend 2 al backend 1)
- Event (backend 2 al backend 1)
- Event (backend 1 al backend 2)
- Controlar el error en caso de que no haya conexión
- Descarga del proyecto
UNIDAD 25 - MQTT Explorer · 2 leccionesUNIDAD 25 - MQTT Explorer
UNIDAD 25 - MQTT Explorer
- Instalar MQTT Explorer en Windows
- Instalar MQTT Explorer en Linux
UNIDAD 26 - MQTT · 13 leccionesUNIDAD 26 - MQTT
UNIDAD 26 - MQTT
- Resultado esperado
- ¿Que es MQTT?
- Creando nuestro proyecto
- Creando módulo necesarios
- Creando la conexión con MQTT (parte 1)
- Creando la conexión con MQTT (parte 2)
- Publicando un topic
- Mejorando la visualización de datos
- Creando mqtt-data-dto
- Publicar un topic desde un endpoint
- Recibir datos de un topic
- Controlar errores
- Descarga del proyecto
UNIDAD 27 - Despliegue · 5 leccionesUNIDAD 27 - Despliegue
UNIDAD 27 - Despliegue
- Compilando nuestra aplicación
- Copiar ficheros al compilar con copyfiles
- Instalando dependencias
- Ejecutando nuestra aplicación compilada
- Instalando pm2 y ejecutando nuestra aplicación
UNIDAD 28 - Clase Extra · 1 leccionesUNIDAD 28 - Clase Extra
UNIDAD 28 - Clase Extra
- Clases Extra
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
28 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
Cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Disco Duro de Roer.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 28 unidades · 323 lecciones · 60 h
- 12 meses de acceso
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Disco Duro de Roer; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


