NestJS Typescript: la guía definitiva (2022) (2022)

NestJS Typescript: la guía definitiva (2022) (2022)

Requisitos previos

Antes de continuar con esta guía, deberá entender qué es la programación web del lado del servidor, los frameworks, el conocimiento general de JavaScript, TypeScript y NodeJS, lo que le ayudará a entender el framework NestJS.


Visión general completa de NestJS

En esta guía aprenderás un framework fascinante en el ecosistema de Node.js y TypeScript.


Aprenderás el framework TypeScript Nestjs desde cero hasta un nivel avanzado y cómo instalar Node.js y configurar el servidor NestJS en tu máquina local.


Además, aprenderás a conectar una base de datos MongoDB con NestJS y a construir y desplegar una aplicación completa en el servidor.


Entremos de lleno:


¿Qué es NestJS?

NestJS ha demostrado ser el marco TypeScript de más rápido crecimiento para construir aplicaciones backend flexibles, escalables, a gran escala y preparadas para la empresa utilizando Node.js.


Cuando se construyen aplicaciones backend altamente testeables, bien estructuradas y mantenibles utilizando TypeScript, NestJS es la principal opción para las principales organizaciones.


NestJS tiene más de 45.000 GitHub Stars y 5.000 Forks en Github en el momento de escribir este artículo.


Una descarga semanal de hasta 1.200.000 en los últimos 6 meses de NPMTrends hace que el marco Nest.js sea un marco de trabajo goto para la elaboración de su proyecto de backend con Node.js y TypeScript.


Una descarga semanal de hasta 700 000 durante los últimos 6 meses de NPMTrends convierte al marco de Nest.js en un marco de referencia para crear su proyecto de back-end con Node.js y TypeScript.


Como un marco web completo con alta estructura y arquitecturas bien estructuradas, el marco NestJS de TypeScript tiene grandes características que lo hacen escalable, testeable y mantenible.


Vamos a sumergirnos en ello:


Características de NestJS

TypeScript

NestJs está construido con TypeScript, y es el más popular en este ecosistema.


Esta integración reduce drásticamente los errores relacionados con la comprobación de tipos y las incoherencias tipográficas cuando se utiliza JavaScript para crear aplicaciones empresariales y a gran escala.


CLI

NestJS proporciona la herramienta CLI más potente. La herramienta puede crear y gestionar cualquier parte del framework NestJS escribiendo sus comandos de terminal.


La CLI es un punto de verdad único para que los fanáticos de los comandos desarrollen aplicaciones con NestJS sin muchas interacciones con la GUI.


Con la CLI, puedes crear bases de datos para crear módulos, controladores y archivos de servicios escribiendo unos pocos comandos.


Documentación

NestJS proporciona guías muy limpias y bien documentadas para que los principiantes construyan aplicaciones sencillas y complejas con el marco de trabajo NestJS typescript.


Con la documentación, es sencillo empezar, y casi todas tus preguntas de desarrollo ya han sido cubiertas en la documentación.


Microservicios

Aparte del estilo arquitectónico tradicional de desarrollo llamado Monolítico.


NestJS soporta de forma nativa el estilo de desarrollo de arquitectura de microservicios desde el primer momento, proporcionando una integración adecuada con muchas herramientas de microservicios populares como Kafka, gPRC, RabbitMQ, etc.


Bibliotecas populares

NestJS es compatible con diferentes herramientas populares desde el primer momento, lo que reduce los problemas de desarrollo y acelera el desarrollo de aplicaciones. Las mejores herramientas para desarrolladores ya están integradas, siguiendo las mejores prácticas y los estándares de la industria.


NestJS es compatible con TypeORM, Mongoose, GraphQL, Logging, Validación, Caching, WebSockets y mucho más desde el primer momento, sin necesidad de ninguna configuración adicional.


Aparte de estas características generales de NestJS, el uso de NestJS para su proyecto incluye muchas otras características que no hemos enumerado.


NestJS: El Framework

En este capítulo, el tutorial explorará un poco sobre el framework NestJS.


Discutiremos la estructura del framework y cómo combina los elementos de POO (Programación Orientada a Objetos), FP (Programación Funcional) y FRP (Programación Reactiva Funcional) en este tutorial.


Este tutorial discutirá el problema más importante que NestJS resuelve en el ecosistema de desarrollo web backend → Arquitectura.


Por último, discutiremos cómo NestJS utiliza la estructura arquitectónica de Angular para resolver el problema arquitectónico del desarrollo de backend para construir aplicaciones altamente comprobables, escalables y mantenibles.


Debes tener en cuenta que el framework NestJS utiliza ExpressJS bajo el capó, y con la guía definitiva de Express, aprenderás ExpressJS desde el nivel de principiante hasta construir tu primer proyecto del mundo real con ExpressJS.


Si estás entusiasmado como yo, vamos a sumergirnos de lleno.


Como ya te habrás dado cuenta, NestJS sigue firmemente los patrones arquitectónicos OOP, FP y FRP.


Vamos a explorar cada uno de estos conceptos:


¿Qué es la POO?

La programación orientada a objetos (POO) es un paradigma que organiza el diseño del software en torno a datos y objetos en lugar de funciones y lógica.


En la POO, todo es un objeto y puede relacionarse con otro objeto para realizar diferentes funciones, ya sea en grupo o individualmente.


¿Qué es la PF?

La Programación Funcional (PF) es también un paradigma de programación donde los programas se construyen aplicando y componiendo funciones.


Cuando una función pura es llamada con argumentos, siempre devolverá el mismo resultado.


¿Qué es la PRF?

La Programación Reactiva Funcional (FRP) es un modelo de programación reactiva (Programación Asíncrona de Flujo de Datos) que utiliza los bloques de construcción de la programación funcional.


Este contenido le dará una visión más clara de FP, RP y FRP para fomentar su comprensión del marco de trabajo NestJS.


La combinación de estos diferentes paradigmas y modelos permite a los desarrolladores y a los equipos crear aplicaciones y arquitecturas altamente comprobables, escalables, poco acopladas y de fácil mantenimiento, que inspiran en gran medida a Angular.


Arquitectura de Nest.js

Nest.js utiliza una arquitectura de 3 niveles que separa los códigos en 3 componentes principales y permite a los desarrolladores crear menos códigos espagueti:


  1. Controladores
  2. Servicios
  3. Capa de acceso a los datos

Controladores

Sirven de intermediario entre las peticiones y las respuestas del cliente. Se encargan de gestionar las peticiones entrantes y devolver las respuestas al cliente a través del protocolo HTTP.


Visión general de los controladores Nest.js

El controlador recibe una solicitud específica para la aplicación a través del mecanismo de enrutamiento creado y procesa la solicitud.


Nest.js utiliza clases y decoradores para crear controladores y asignar cada método de la clase a las rutas para recibir una solicitud específica.


Este es un ejemplo de un controlador que utiliza decoradores:


Los @Controllers, y @Get son los decoradores utilizados para informar a Nest.js que estamos creando un controlador Todos y que el método findAll es una petición GET.


Servicios

Los servicios forman parte de los proveedores de Nest.js. Los proveedores son lo fundamental de Nest.js, con la idea principal de inyectar como una dependencia.


Con la inyección de dependencia, se crean relaciones entre varios componentes, controladores y otras partes de la aplicación.


En concreto, los servicios forman parte del bloque de código que incluye únicamente la lógica de negocio.


Por ejemplo, la implementación de todas las operaciones CRUD de la base de datos y los métodos para determinar cómo se pueden crear, almacenar y actualizar los datos.


Aquí hay un ejemplo de servicios utilizados para gestionar un conjunto de Todos:


La clase service utiliza el decorador Injectable() mostrando que es un proveedor y que puede ser inyectado como dependencia en cualquier otra clase, por ejemplo, los controladores.


A continuación, creamos un array de todos que contendrá todos nuestros todos que serán creados usando el método create y recuperados usando el método findAll.


Capa de acceso a los datos

La capa de acceso a los datos se encarga y proporciona la lógica para acceder a los datos almacenados en algún tipo de almacenamiento persistente.


Se encuentra en el nivel más bajo, tratando con la base de datos y encapsulando los detalles de acceso a los datos y proporcionando una interfaz de acceso amigable para la capa superior.


Este es un ejemplo de un tipo de definición centrado en la entidad:


Estructuras de directorios

En la etapa inicial de todo proyecto, la definición de una estructura de proyecto es uno de los pasos importantes, ya que sirve de guía a lo largo de todo el proyecto.


Para Nest.js es importante tener un proyecto con un archivo de directorios bien estructurado para que sea mucho más legible, comprensible y fácil de trabajar con los nuevos y antiguos miembros del equipo para entenderlo.


A continuación se muestra la estructura inicial del proyecto Nest.js después de la instalación:


Los archivos app.controller.ts y app.controller.spec.ts contienen la lógica básica del controlador para una sola ruta y las pruebas unitarias del controlador, respectivamente.


A continuación, el app.module.ts es el módulo raíz de la aplicación y app.service.ts es la lógica del modelo de servicio/datos de la aplicación.


Por último, el main.ts es el archivo de entrada de la aplicación que utiliza la función central NestFactory para crear una instancia de la aplicación Nest.


Esta sencilla estructura de directorios puede ampliarse hasta convertirse en un proyecto completo creando carpetas y organizándolas en función de sus características.


Echemos un vistazo a la creación de una simple aplicación Todo con una estructura de directorios de autenticación:


Resumen

NestJS typescript framework es un marco de trabajo backend utilizado para crear APIs escalables y fiables.


Es un marco web typescript todo en uno que incluye herramientas para manejar todos los casos de uso posibles, desde la persistencia de datos, la validación, la gestión de la configuración, las pruebas, etc.


Además, el framework web Typescript se utiliza oficialmente en Nest.js para asegurar la escritura de códigos limpios y correctos.


Ahora, es tu turno de practicar todo lo que has aprendido en este tutorial de Nest.js hasta que lo domines construyendo proyectos del mundo real.


Hazme saber qué vas a hacer. Si no hay ninguno, comenta "Nest.js es genial", podemos conectar desde ahí.


Reactions

11

1

0

0

Access hereTo be able to comment

TheWhiteCode.com is not the creator or owner of the images shown, references are: