
Backend con NestJS
APIs REST, Seguridad, Docker y Bases de Datos
Aprende NestJS Backend y crea APIs seguras, gestiona bases de datos, usa Docker y desarrolla microservicios paso a paso.
Curso NestJS Backend

Tiempo de estudio: 50 horas

Duración 8 semanas

Tutelados: Seguimiento continuo

Ejercicios Prácticos

100% Bonificable Fundae

Plazas Limitadas
Próxima convocatoria:
24 marzo 2025
El precio original era: 375,00€.300,00€El precio actual es: 300,00€.
IVA no incluido
¿Aún no te has decidido?
Subscríbete a nuestra newsletter.
Novedades, recursos para desarrolladores, noticias, promociones... y obtén un descuento de un
10%
para el próximo curso que realices.
Matriculación
Cumplimenta el formulario con tus datos.
Un miembro del equipo se pondrá en contacto contigo para completar tu matrícula.
Muchas gracia por confiar en TrainingIT para tu formación.

Más Información
¿Tienes alguna duda acerca del curso?
Rellena el formulario.
En breve nos pondremos en contacto para solucionar tus dudas

resumen
Curso NestJS Backend: Todo lo que Necesitas para Dominar el Backend
El Curso NestJS Backend de TrainingIT es una formación completa para crear aplicaciones backend profesionales con NestJS. Desde la instalación y configuración hasta el despliegue con Docker, este curso abarca todas las herramientas y prácticas necesarias para un desarrollo backend eficiente.
Aprende APIs REST y Autenticación Segura
Con este Curso NestJS Backend, desarrollarás APIs REST robustas, implementarás autenticación JWT segura y gestionarás usuarios con facilidad. Además, documentarás tus endpoints usando Swagger, siguiendo las mejores prácticas.
Conecta NestJS con Bases de Datos Populares
Este Curso NestJS Backend te enseñará a integrar MySQL, Oracle y MongoDB en tus aplicaciones, optimizando consultas y gestionando datos de forma eficiente. También aprenderás a trabajar con Docker para crear entornos estables y desplegables.JS.
Microservicios, Cron Jobs y Más
Durante el Curso NestJS Backend, desarrollarás microservicios que se comunican entre sí, automatizarás tareas con cron jobs y enviarás emails mediante nodemailer. La gestión de logs con Winston y el despliegue en producción también forman parte del temario.
¡Matricúlate ya en el Curso NestJS Backend de TrainingIT y conviértete en un experto backend con las mejores herramientas y prácticas de desarrollo!
profesor

Fernando Ureña
Programador con 7 años de experiencia en varias tecnologías, especializado en Angular.
Me adapto a las necesidades de cada proyecto, con iniciativa y me encanta la formación.
Voy por el camino de la informática aprendiendo y quiero compartir poco a poco los conocimientos que adquiero para ayudar a la gente con los problemas técnicos que puedan surgir.
Solo soy una persona más de este mundo que quiere aportar su granito de arena, para ayudar a los demás en lo que pueda. Me encanta el tema de la formación y poder ayudar a los demás.
Otros Cursos de Fernando Ureña:
- Curso Ionic7: aplicaciones móviles híbridas
- Curso Práctico de NestJS: Desarrollo Backend con Bases de Datos y Swagger
1. Preparación del entorno
1.1 Instalar Visual Studio Code
1.2 Instalar Node.js
1.3 Instalar Postman
1.4 Instalar Docker
1.5 Instalar Visual Studio Code Linux
1.6 Instalar Node.js Linux
1.7 Instalar Postman Linux
2. Instalación de NestJs
2.1 Instalación de @nestjs/cli
3. Configuración Postman
3.1 Explicando cómo funciona Postman
3.2 Creando un environment
3.3 Exportar e importar variables del entorno
4. REST API de una lista de nombres
4.1 Resultado esperado
4.2 ¿Qué es una REST API?
4.3 Creando nuestro proyecto
4.4 Creando nuestro módulo
4.5 Creando nuestro controlador
4.6 Creando nuestro servicio
4.7 Creando e inicializando nuestro array de nombres
4.8 Operación Create con los decoradores @Post y @Body
4.9 No insertar un nombre si ya existe
4.10 Operación Read con el decorador @Get
4.11 Mejorando la operación Read con el decorador @Query
4.12 Operación Update con los decoradores @Put y @Param
4.13 Operación Delete con los decoradores @Delete y @Param
4.14 Limpiando todos los nombres
4.15 Exportando los endpoints de Postman
5. Swagger
5.1 Resultado
5.2 Instalar swagger
5.3 ApiTags
5.4 ApiOperation
5.5 ApiParam
5.6 ApiQuery
5.7 ApiPost
5.8 Probando nuestra documentación completamente
6. Usuarios
6.1 Resultado esperado
6.2 Creando el proyecto
6.3 Creando nuestro módulo, controlador y servicio
6.4 Creando nuestro primer dto
6.5 Validando la entrada de parámetros
6.6 Global Pipe
6.7 Creando usuarios
6.8 Pipe parseDate
6.9 Obteniendo usuarios filtrados
6.10 Actualizando usuarios
6.11 Eliminando usuarios
6.12 Documentando nuestros endpoints
6.13 Documentando nuestro dto
7. Instalación MySQL
7.1 Descargar imagen MySQL
7.2 Instalar MySQL Workbench en Windows
7.3 Instalar MySQL Workbench en Linux
8. Conexion MySQL
8.1 Resultado esperado
8.2 Diferencia entre un entity y un dto
8.3 Reinicio de tablas
8.4 Creando un proyecto
8.5 Instalando TypeORM
8.6 ¡A tener en cuenta en el próximo video!
8.7 Configuración del ORM con ormconfig.json
8.8 Creando el módulo Product
8.9 Creando nuestro product-dto
8.10 Creando nuestro product.entity
8.11 Inyectando nuestro repositorio en productService
8.12 Creando un producto
8.13 Devolviendo un producto por su id
8.14 Mejorando la validación del producto al crearlo
8.15 Devolviendo todos los productos
8.16 Devolviendo todos los productos borrados
8.17 Actualizando productos
8.18 Borrado suave de productos
8.19 Recuperando productos borrados
8.20 Creando stock-dto
8.21 Actualizando el stock de un producto
8.22 Incrementando el stock de un producto
8.23 Decrementando el stock de un producto
8.24 Documentando los endpoints de product
8.25 ApiResponse
8.26 Documentando dto
8.27 Creando el módulo Client
8.28 Creando client-dto
8.29 Creando client.entity
8.30 Creando address-dto
8.31 Creando address.entity
8.32 Relación OneToOne con typeorm
8.33 Crear cliente
8.34 Validar si existe o no el cliente
8.35 Validar la dirección
8.36 Obtener todos los clientes
8.37 Obtener un cliente por su id
8.38 Actualizar un cliente
8.39 Validar email al actualizar
8.40 Validando la dirección al actualizar cuando no tiene id
8.41 Validando la dirección al actualizar cuando tiene id
8.42 Borrando la dirección desreferenciada
8.43 Eliminar un cliente
8.44 Creando el módulo Order
8.45 Creando order-dto
8.46 Creando order.entity
8.47 Relación ManyToOne/OneToMany
8.48 Relación ManyToMany
8.49 Completando order-dto
8.50 Importando el módulo Cliente y Producto
8.51 Creando órdenes
8.52 Obtener una orden por su id
8.53 Obtener órdenes pendientes
8.54 Obtener órdenes confirmadas
8.55 ¡A tener en cuenta antes del próximo video!
8.56 Filtrando órdenes confirmadas (parte 1)
8.57 Filtrando órdenes confirmadas (parte 2)
8.58 Confirmando órdenes
8.59 Obtener órdenes de un cliente
8.60 Documentar dto
8.61 Documentar endpoints de clientes (parte 1)
8.62 Documentar endpoints de clientes (parte 2)
8.63 Documentar endpoints de órdenes
9. Instalar Oracle
9.1 Descargar imagen docker
9.2 Instalar SQLDeveloper en Windows
10. Conexión Oracle
10.1 Crear un usuario en Oracle
10.2 Creando nuestro proyecto
10.3 ¡Atención antes del siguiente video!
10.4 Adaptando el anterior proyecto
10.5 Probando el funcionamiento con Postman
11. Instalación de Mongo DB
11.1 Descargar imagen docker
11.2 Instalar MongoDB Compass en Windows
11.3 MongoDB en linux
11.4 Instalar MongoDB Compass en Linux
11.5 Seguridad MongoDB Linux
12. Conexión Mongo con mongoose
12.1 Resultado esperado
12.2 Creando nuestro proyecto
12.3 Instalando @nestjs/mongoose
12.4 Configuration
12.5 Creando nuestra configuración en ficheros env
12.6 Configurando nuestro entorno de desarrollo
12.7 Conectar con mongo usando los datos de la configuración
12.8 Creando el módulo Permissions
12.9 Creando permission-dto
12.10 Schema permission
12.11 Inyectando el servicio conexión de MongoDB en los permisos
12.12 Creando permissions
12.13 Obteniendo todos los permissions
12.14 Filtrando permissions por su nombre
12.15 Creando updated-permission-dto
12.16 Actualizando permissions
12.17 Borrando permissions
12.18 Documentando permissions
12.19 Creando el módulo Roles
12.20 Creando role-dto
12.21 Schema role
12.22 Inyectando el modelo de MongoDB en los roles
12.23 findPermissionByname
12.24 Creando roles
12.25 Obteniendo roles
12.26 Filtrando roles
12.27 Buscar roles por nombre
12.28 Actualizando roles
12.29 Añadiendo permissions al role
12.30 Borrando permissions al role
12.31 Borrando roles
12.32 Documentación de roles
12.33 Creando el módulo User
12.34 Creando user-dto
12.35 Schema User
12.36 Inyectando el modelo de MongoDB en los usuarios
12.37 Creando usuarios
12.38 Obtener un usuario por email
12.39 Obteniendo usuarios
12.40 Paginación de usuarios
12.41 Pipe greaterZero
12.42 Ordenación de usuarios
12.43 Obtener un usuario por usercode
12.44 Actualizando usuarios
12.45 Creando user-role-dto
12.46 Añadir un rol al usuario
12.47 Borrar un rol al usuario
12.48 Borrando usuarios
12.49 Obteniendo usuarios borrados
12.50 Obteniendo usuarios no borrados
12.51 Mejorando la parte de los GETs
12.52 Restaurando usuarios
12.53 Contar el número de usuarios con un rol
12.54 forwardRef
12.55 No borrar el rol si hay usuarios con ese rol
12.56 Documentación usuarios
13. Mongo Atlas
13.1 Creando una cuenta en Mongo Atlas
13.2 Preparando nuestro proyecto
13.3 Conectando Mongo Atlas con Mongo Compass
13.4 Adaptando nuestra conexión para Mongo Atlas
13.5 Probando nuestros endpoints
14. Autenticación
14.1 Resultado esperado
14.2 Creando nuestro proyecto
14.3 Configuración
14.4 Conexión MongoDB
14.5 Creando el módulo de users
14.6 Creando user-dto
14.7 Schema User
14.8 Inyectando el modelo de usuario
14.9 Creando usuarios
14.10 Encriptando contraseñas
14.11 Obteniendo usuarios
14.12 Obteniendo un usuario por su email
14.13 Poblar usuarios
14.14 Creando auth module
14.15 Mejorando la configuración
14.16 Creando auth-credentials-dto
14.17 Passport
14.18 Importando JwtModule usando nuestro secretKey
14.19 Estrategia JWT
14.20 Validar Token
14.21 Validar credenciales
14.22 Login
14.23 jwt.io
14.24 Protegiendo los endpoints del módulo user
14.25 Devolviendo datos del usuario logueado
14.26 Documentando nuestros endpoints
14.27 Añadiendo autorización a swagger
15. Subir Archivos multimedia
15.1 Resultado esperado
15.2 Creando nuestro proyecto
15.3 Creando nuestro módulo
15.4 MulterModule
15.5 Subir un archivo
15.6 Subiendo un archivo con Postman
15.7 Subir varios archivos a la vez
15.8 Limitando el tamaño de los ficheros
15.9 Solo subir imágenes
15.10 Mejorando donde almacenar los archivos
15.11 Cambiar el nombre de los ficheros al subirlos
15.12 Descargar un archivo
15.13 Documentando nuestros endpoints
15.14 Subir archivos en Swagger
16. Cron
16.1 Resultado esperado
16.2 Creando nuestro proyecto
16.3 Creando módulo cron
16.4 Instalando @nestjs/schedule
16.5 Crontab guru
16.6 Creando crons
16.7 Desactivando un cron
16.8 Instalando @types/cron
16.9 Activando un cron
16.10 Devolver todos los nombres de los crons
16.11 Desactivando todos los crons a la vez
16.12 Activando todos los crons a la vez
16.13 Documentando nuestros endpoints
17. Logs
17.1 Resultado esperado
17.2 Creación del proyecto
17.3 Reutilizando el proyecto anterior
17.4 Instalar Winston
17.5 Creando nuestro módulo Logger de forma global
17.6 Creando nuestro servicio
17.7 Formato de texto
17.8 Formato de fecha
17.9 Creando nuestros logger
17.10 Arrancando nuestro logger
17.11 Usando LoggerService
17.12 Instalar Winston rotate
17.13 Rotar logs por días
17.14 Usar console.log como logger
18. Emails
18.1 Resultado esperado
18.2 Creando nuestro proyecto
18.3 Creando nuestro módulo
18.4 Creando MessageDto
18.5 Validando el interior de un array
18.6 EmailConfig
18.7 Módulo dinámico
18.8 Instalar nodemailer
18.9 Creando un endpoint para enviar un email
18.10 Configurando nuestro módulo para enviar correos con Gmail
18.11 Configurar Gmail
18.12 Enviar correos con nodemailer
18.13 Testeo de envío de email
18.14 Configurando nuestro módulo para enviar correos con Outlook
18.15 Documentación
19. Microservicios
19.1 Resultado esperado
19.2 ¿Qué es un microservicio?
19.3 Creando nuestros proyectos
19.4 Instalar las dependencias necesarias
19.5 Creando los módulos necesarios en el backend 1
19.6 Creando los módulos necesarios en el backend 2
19.7 Creando nuestros microservicios
19.8 Creando la conexión de nuestros microservices
19.9 Creando un endpoint para mandar un mensaje
19.10 Patterns
19.11 MessagePattern (backend 1 al backend 2)
19.12 MessagePattern (backend 2 al backend 1)
19.13 Event (backend 2 al backend 1)
19.14 Event (backend 1 al backend 2)
19.15 Controlar el error en caso de que no haya conexión
20. MQTT Explorer
20.1 Instalar MQTT Explorer en Windows
20.2 Instalar MQTT Explorer en Linux
21. MQTT
21.1 Resultado esperado
21.2 ¿Qué es MQTT?
21.3 Creando nuestro proyecto
21.4 Creando módulo necesarios
21.5 Creando la conexión con MQTT (parte 1)
21.6 Creando la conexión con MQTT (parte 2)
21.7 Publicando un topic
21.8 Mejorando la visualización de datos
21.9 Creando mqtt-data-dto
21.10 Publicar un topic desde un endpoint
21.11 Recibir datos de un topic
21.12 Controlar errores
22. Despliegue
22.1 Compilando nuestra aplicación
22.2 Copiar ficheros al compilar con copyfiles
22.3 Instalando dependencias
22.4 Ejecutando nuestra aplicación compilada
22.5 Instalando pm2 y ejecutando nuestra aplicación
objetivos
El Curso NestJS Backend tiene como objetivo ofrecerte las habilidades necesarias para desarrollar aplicaciones backend eficientes con NestJS.
Crear aplicaciones backend completas y escalables con NestJS.
Desarrollar APIs REST y gestionar autenticación segura.
Integrar bases de datos como MySQL, Oracle y MongoDB.
Implementar sistemas de logs y documentar con Swagger.
Desplegar aplicaciones usando Docker.
requisitos
Para aprovechar al máximo este Curso NestJS Backend, es recomendable que los alumnos cumplan con los siguientes requisitos:
- Conocimientos básicos de TypeScript y JavaScript.
- Familiaridad con Node.js y su ecosistema.
- Experiencia mínima en desarrollo de aplicaciones o APIs.
Nota importante: TrainingIT no facilita entornos de desarrollo, licencias de software, cuentas ni servicios externos para la realización de este curso. Cada alumno debe gestionar su propio entorno y recursos para seguir las prácticas y proyectos.
faq
Quiero bonificar el curso pero en mi empresa NO sabe cómo hacerlo
Podemos encargarnos, no te preocupes. Tiene un coste de un 10% sobre el importe del curso. Y este importe también es bonificable.
Quiero bonificar el curso y mi empresa se encargará de los trámites.
En este caso ponte en contacto con nosotros y te haremos llegar toda la documentación del curso para que podáis dar de alta la acción y grupo formativo.
¿Obtengo diploma de certificación?
Ofrecemos dos certificados:
- Alumnos que bonifican el curso:
- Certificado de asistencia al curso: para obtener este certificado debes haber completado el 75% del curso.
- Certificado de aprovechamiento: Si has completado el curso y has realizado todas las pruebas prácticas del curso, y la media de tu calificación es igual o superior a 6.
- Todos los alumnos:
- Insignia de participación: si realizas el curso completo pero tu nota en los ejercicios del curso es inferior a un 6.
- Insignia de aprovechamiento: si realizas el curso completo y tu nota en los ejercicios del curso es igual o superior a 6.
¿Cómo de estrictos son los plazos?
Los cursos están pensados entre dos fechas, para tener disponible al profesor y resto de alumnos para resolver dudas. Si no lo terminas a tiempo, seguirás teniendo acceso a la plataforma con todo el material disponible. Sin embargo, no tendrás a los profesores a tu disposición, aunque sí a otros alumnos que puedan estar en tu misma situación.Los alumnos que bonifiquen el curso tendrán que completarlo en los plazos especificados, al menos con un 75% de las actividades del curso completadas, y unos tiempos de conexión a la plataforma acordes a los tiempos de dedicación del curso. De no ser así no se podrá aplicar bonificación sobre el curso.
Soy autónomo, ¿puedo bonificar el curso?
Lamentablemente no. Sólo pueden bonificar los cursos tus empleados si los tienes. Ponte en contacto con nsotros y te ofreceremos un descuento.
No encuentro la forma de realizar el pago en la web
No puedes pagar el curso a través de la web. Rellena el formulario del curso que te interese y un miembro del equipo de trainingIT se pondrá en contacto contigo.
Cuando finalice el curso ¿seguiré teniendo acceso al curso?
Si, una vez finalice el curso podrás seguir accediendo a os materiales del mismo. Pero los profesores ya no atenderán el curso.
¿Y si no resido en España?
No supone ningún problema. Si estás contratado por una empresa española, y tienes contrato en España podrás bonificar el curso igualmente. Si no es tu caso podrás realizar el curso por tu cuenta.