Aprende NestJs desde 0

Aprende NestJs de forma práctica

4.64 (35 reviews)
Udemy
platform
Español
language
Web Development
category
Aprende NestJs desde 0
261
students
19 hours
content
Jul 2022
last update
$84.99
regular price

What you will learn

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

Desplegar tu aplicación en un servidor

Description

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.

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 8 de NestJs.

¡Os espero en el curso!

Content

Introducción

¡Pregunta!
Sobre las calificaciones tempranas

Sobre Nestjs

Documentación oficial

Preparación del entorno Windows

Instalar Visual Studio Code
Instalar Node.js
Instalar postman

Preparación del entorno Linux

Instalar Visual Studio Code
Instalar Node.js
Instalar postman

Instalación de NestJs

Instalación de @nestjs/cli

Configuración Postman

Explicando como funciona postman
Creando un environment
Exportar e importar variables del entorno

A tener en cuenta

A tener en cuenta con los proyectos descargados

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

Swagger

Resultado
Instalar swagger
ApiTags
ApiOperation
ApiParam
ApiQuery
ApiPost
Probando nuestra documentación completamente
Descarga del proyecto

Usuarios

Resultado esperado
Creando el proyecto
Creando nuestro módulo, controlador y servicio
Creando nuestro primer dto
Validando la entrada de parametros
ValidationPipe
Creando usuarios
Obteniendo usuarios filtrados
Actualizando usuarios
Eliminando usuarios
Documentando nuestros endpoints
Documentando nuestro dto
Descarga del proyecto

Instalación MySQL

Instalar MySQL y MySQL Workbench en Windows
Instalar MySQL en Linux
Instalar MySQL Workbench en Linux

Conexion MySQL

Resultado esperado
Diferencia entre un entity y un dto
Reinicio de tablas
Creando un proyecto
Instalando TypeORM
Configuración del ORM con ormconfig.json (rehacer)
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
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 (parte 1)
Descarga del proyecto

Instalar oracle

Instalar Oracle xe en Windows
Instalar SQLDeveloper en Windows

Conexion Oracle

Crear un usuario en Oracle
Creando nuestro proyecto
Adaptando el anterior proyecto
Probando el funcionamiento con postman
Descarga del proyecto

Instalación de Mongo DB

Instalar MongoDB en Windows
Instalar MongoDB en Linux
Instalar MongoDB Compass en Linux

Seguridad y usuarios en MongoDB

Crear usuario en MongoDB
Habilitar seguridad en MongoDB en Windows
Habilitar seguridad en MongoDB en Linux

Conexion Mongo con moongose

Resultado esperado
Creando nuestro proyecto
Instalando moongose
Creando módulo conexión MongoDB
Conectando MongoDB con moongose
Configuration
Creando nuestra configuración en ficheros env
Recogiendo nuestra configuración
Creando el modulo Permissions
Creando permission-dto
Creando la interfaz de permission
Creando el esquema de 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
Creando la interfaz de role
Creando el schema que role
Inyectando el servicio conexión de MongoDB en los roles
Creando roles
Obteniendo roles
Populando permissions
Filtrando roles
Buscar roles por nombre
Actualizando roles
Añadiendo permisos al role
Borrando permisos al role
Borrando roles
Documentando roles (parte 1)
Documentando roles (parte 2)
Creando el modulo User
Creando user-dto
Creando la interfaz de user
Creando el schema de user
Inyectando el servicio conexión de MongoDB en los usuarios
Creando usuarios
Encontrar un usuario por email
Obteniendo usuarios
Obteniendo usuarios no borrados
Actualizando usuarios
Creando user-role-dto
Añadir un rol al usuario
Borrar un rol al usuario
Borrando usuarios
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 (parte 1)
Documentación usuarios (parte 2)
[BONUS] Configuración sin usar el fichero .env
Descarga del proyecto

Usando 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

Autenticación

Resultado esperado
Creando nuestro proyecto
Configuración
Conexión MongoDB
Creando el módulo de users
Creando user-dto
Creando interfaz de usuario
Creando el schema de usuario
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
Validando el usuario
Validar credenciales
Login
jwt.io
Protegiendo los endpoints del módulo user
Comprobando la validación de la estrategia
Devolviendo datos del usuario logueado
Documentando nuestros endpoints
Añadiendo autorización a swagger
Descarga del proyecto

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

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

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

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
Activar aplicación no segura gmail
Enviar correos con nodemailer
Testeo de envio de email
Configurando nuestro módulo para enviar correos con outlook
Documentación
Descarga del proyecto

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

MQTT Explorer

Instalar MQTT Explorer en Windows
Instalar MQTT Explorer en Linux

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

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

Clase Extra

Clases Extra

Reviews

Ulises
July 6, 2022
Excelente curso!! vale la pena completamente. El instructor tiene bastante dominio sobre el tema y además lo sabe transmitir de muy buena forma, los temas que imparte cubren a la perfección todo lo que se necesita para aprender NestJs.
Mickey
June 17, 2022
A pesar de que te quedas con ganas de un curso avanzado, es espectacular. Explica demasiado claro y paso a paso. Genial.

Charts

Price

Aprende NestJs desde 0 - Price chart

Rating

Aprende NestJs desde 0 - Ratings chart

Enrollment distribution

Aprende NestJs desde 0 - Distribution chart
4408326
udemy ID
11/22/2021
course created date
4/22/2022
course indexed date
Bot
course submited by