Introducción a NestJS [+6 recursos de aprendizaje]

Publicado: 2023-01-06

NestJS es un marco progresivo de Node.js para crear aplicaciones del lado del servidor escalables, eficientes y confiables.

NestJS se creó para eliminar las bases de código desorganizadas. Su estructura modular facilita la organización del código en diferentes módulos.

NestJS se basa en Typescript y usa ExpressJS debajo del capó. NestJS es amado por los desarrolladores que quieren aprovechar el poder de verificación de tipos de TypeScript. NestJS combina diferentes aspectos de la programación reactiva funcional (FRP), la programación orientada a objetos (OOP) y la programación funcional (FP).

¿Por qué NestJS?

Por qué-NestJS

NestJS es apto para principiantes, ya que tiene una buena estructura y herramientas de interfaz de línea de comandos (CLI) fáciles de usar. Por lo tanto, los desarrolladores pueden montar una nueva característica con un solo comando mientras usan este marco Node.js.

NestJS proporciona el módulo, el servicio, el controlador y la pila de pruebas para que pueda comenzar. También puede confiar en los muchos repetitivos y plantillas disponibles para facilitar su viaje de desarrollo.

La curva de aprendizaje de NestJS será fácil para aquellos familiarizados con los bucles, la sintaxis y las condiciones en JavaScript y Angular.

Características de NestJS

Características de NestJS

Basado en mecanografiado

NestJS se basa en Typescript, un superíndice de JavaScript. Typescript proporciona una mejor experiencia de desarrollo, ya que no tiene que verificar manualmente los errores cada vez que cambia algo en el código. Typescript básicamente ofrece todas las características de JavaScript, pero también viene con algunas funcionalidades adicionales.

Contenedor de inyección de dependencia

La inyección de dependencia separa la inicialización de los objetos que usa la clase de la clase misma. En tal caso, la clase se llama 'cliente' mientras que las dependencias de clase se conocen como 'servicios'. Este DI incorporado en NestJS hace que las aplicaciones sean más eficientes y modulares.

Potente interfaz de línea de comandos (CLI)

Puede inicializar, desarrollar y mantener todas sus aplicaciones NestJS utilizando NestCLI. Hay muchas cosas que puede hacer con la CLI de Nest, como;

  • Andamiaje del proyecto
  • Sirviendo el proyecto en modo de desarrollo
  • Cree y agrupe la aplicación para la distribución de producción

Modularización

Cada aplicación NestJS tiene al menos un módulo. El módulo 'raíz' es el más básico. En una aplicación típica de NestJS, cada parte lógica de la aplicación vivirá en el mismo límite de dominio (módulo). Tal configuración facilita la organización de componentes donde una aplicación tendrá múltiples módulos con un conjunto de capacidades estrechamente relacionado.

Examen de la unidad

Las pruebas automatizadas vienen con muchos beneficios. Sin embargo, el proceso de establecer tales pruebas puede ser mucho más complicado. NestJS tiene varias funciones para ayudar a los equipos a crear y automatizar pruebas. Lo bueno de NestJS es que se puede usar con varias herramientas de prueba. El sistema de inyección de dependencia de Nest está disponible durante las pruebas para simular fácilmente los componentes.

Base de datos agonística

Puede integrarse fácilmente con cualquier base de datos SQL o NoSQL según sus necesidades y preferencias cuando trabaje con NestJS. Conectar NestJS a una base de datos es muy simple, ya que solo necesita cargar un controlador Node.js apropiado.

Admite varias bibliotecas

NestJS es compatible con varias herramientas, lo que acelera el desarrollo de aplicaciones. Este marco admite registro, validación, almacenamiento en caché, WebSockets, TypeORM, Mongoose y GraphQL sin configuración adicional.

Arquitectura y flujo de trabajo de NestJS

NestJS tiene una arquitectura de 3 capas que consta de controladores, proveedores y módulos. Los desarrolladores pueden así crear un código limpio que no se superponga.

Arquitectura-y-flujo-de-trabajo-de-NestJS
Fuente de la imagen: mejor programación

Controladores

Los controladores en NestJS sirven como puente entre las solicitudes y respuestas de los clientes. El mecanismo de enrutamiento siempre dirigirá la solicitud a un controlador apropiado siempre que se realice una solicitud HTTP. El marco utiliza decoradores y clases para crear controladores. Luego, cada método de clase se asigna a rutas para recibir una solicitud específica.

Proveedores

Los proveedores pueden describirse como los fundamentos de NestJS. Los proveedores se inyectan como dependencias y crean relaciones entre varios objetos. Las clases en NestJS, como ayudantes, servicios o repositorios, pueden tratarse como proveedores una vez que se haya agregado el decorador `@Injectable()`. Dichos proveedores también se pueden inyectar en una clase a través del constructor y NestJS resolverá las dependencias.

Módulos

Un módulo en NestJS reúne un conjunto de capacidades estrechamente relacionadas. Cada aplicación NestJS tiene un módulo raíz que se usa como punto de entrada. El uso de múltiples módulos es muy recomendable si desea tener un código organizado y fácil de leer. El decorador `@Module()` de Nest define un módulo y también proporciona información como dependencias, controladores y proveedores para ese módulo.

Primeros pasos con NestJS

Asegúrese de que Node.js y npm estén instalados. Necesita un entorno de tiempo de ejecución y Node.js es perfecto para esta configuración. Necesita la versión >= 12, excepto v13. Puede verificar si tiene Node.js y npm instalados a través de estos comandos;

 node -v
 npm -v

Si ambos están instalados, obtendrá una salida cercana a esta

nodo

Si no los tienes, instálalos a través de la página oficial. Afortunadamente, tanto Node.js como npm se instalan juntos.

  • Instale la CLI de Nest. Utilice los siguientes comandos para configurar la CLI y el proyecto;
 npm i -g @nestjs/cli
 nest new project-name

Elegimos el nombre del proyecto para que sea mynestapp con fines de demostración. NestJS le da la oportunidad de trabajar con Typescript o Vanilla JavaScript. Seleccione lo que más le convenga y presione enter. Una vez que se haya realizado el scaffolding de la aplicación, se configurará la estructura de archivos y la carpeta 'src' vendrá con varios archivos principales, como se muestra en esta captura de pantalla.

Estructura de archivos
  • Ejecuta la aplicación/ tu primer hola mundo

Una vez completada la instalación, ejecute estos comandos para ejecutar el servidor de desarrollo

 cd mynestapp
 npm run start

Escriba http://localhost:3000/ en su navegador y debería mostrarse su primer "Hello World" en NestJs

NestJS: Ventajas

  • Fácil de aprender . Es fácil dominar NestJS, especialmente si eres de Angular o tienes un conocimiento general de JavaScript. La documentación detallada también facilita el dominio del trabajo con este poderoso marco.
  • flexibles Puedes construir muchas cosas usando NestJS. Puede crear aplicaciones MVC, aplicaciones GraphQL, API RESTful y sockets web utilizando este marco Node.js.
  • Viene con miles de módulos . Los módulos respaldados por la comunidad facilitan a los desarrolladores la estructura de diferentes características mientras crean aplicaciones del lado del servidor.
  • Desarrollo rápido y buena arquitectura . No tienes que crear todo desde cero cuando trabajas con NestJS. Sin embargo, el mismo marco tiene una arquitectura sólida para facilitar la comprensión de su código.

NestJS: Inconvenientes

  • No es favorable para aquellos con fondos de TypeScript y Angular . NestJS toma mucho de la arquitectura Angular, y aquellos que no tienen ese conocimiento pueden tardar en comprender la sintaxis y la estructura.
  • Falta en algunas áreas . NestJS aún es joven y es posible que no compita favorablemente con algunos marcos establecidos basados ​​en Python y GO.

Empresas que usan NestJS

#1. Adidas

Adidas, un fabricante y diseñador de calzado, se encuentra entre las empresas que utilizan NestJS. Las asombrosas características de NestJS deben haber atraído a este gigante del calzado para usarlo en su backend.

#2. Capgemini

Capgemini es una multinacional francesa que ofrece consultoría, tecnología, outsourcing y servicios profesionales. Esta empresa usa NestJS en su stack tecnológico.

#3. Roche

Roche es una empresa multinacional del cuidado de la salud que tiene dos divisiones; productos farmacéuticos y diagnósticos. Roche usa NestJS como una de las pilas de tecnología en su sitio web principal.

Recursos de aprendizaje

#1. NestJS cero a héroe

cero a héroe

NestJS Zero to Hero enseña a los desarrolladores cómo crear e implementar aplicaciones de back-end empresariales utilizando Typescript y Node.js. El curso enseña cómo crear API, autorización y autenticación, pruebas unitarias de aplicaciones Nest y TypeORM para interacción con bases de datos, entre muchas otras cosas.

#2. NestJS: la guía completa para desarrolladores

Guía completa para desarrolladores

Este curso les enseña a los desarrolladores cómo crear API de back-end usando Nest, TypeScript y TypeORM. Esta guía completa tiene todo lo que necesita para configurar la codificación, prueba e implementación de su aplicación NestJS. También obtendrá una comprensión tras bambalinas del marco web de NestJS.

#3. Maestro NestJS

MasterNestJS

Master NestJS enseña cómo desarrollar aplicaciones Node.js de nivel empresarial utilizando TypeScript. El curso enseña validación y serialización de datos, cómo funcionan los tokens JWT, cómo usar NestCLI y abstracción de bases de datos modernas, entre muchas cosas más.

#4. NestJs en la práctica (con MongoDB)

NestJs en la práctica

NestJS en la práctica enseña todo lo que necesita aprender sobre NestJS, desde módulos, controladores, GuardsServices, tuberías y middleware. El curso adopta un enfoque basado en proyectos en el que codifica y aloja su código en GitHub con archivos zip descargables para cada sección.

#5. Nest.js: un marco progresivo de Node.js

Este libro presenta a los desarrolladores NestJS y cómo aprovechar JavaScript y TypeScript. El libro ha sido diseñado en un formato de instrucciones para garantizar que pueda configurar y ejecutar su aplicación NestJS en muy poco tiempo.

Avance Producto Clasificación Precio
Nest.js: un marco progresivo de Node.js Nest.js: un marco progresivo de Node.js $24.99

#6. Nest.js práctico: desarrolle aplicaciones web MVC limpias

El libro práctico de Nest.js utiliza un enfoque basado en proyectos para crear una aplicación de tienda en línea que utiliza varias funciones de NestJS. El libro incluye discusiones breves, consejos y frases útiles al crear su aplicación NestJS.

Avance Producto Clasificación Precio
Nest.js práctico: desarrolle aplicaciones web MVC limpias Nest.js práctico: desarrolle aplicaciones web MVC limpias $16.99

Conclusión

Además de ser un poderoso marco Node.js, NestJS también es uno de los marcos Typescript más populares para aplicaciones del lado del servidor en la actualidad. El hecho de que ofrezca las mejores prácticas de codificación y una arquitectura de desarrollo estándar ha hecho que atraiga a muchos ingenieros que desean centrarse en desarrollar la lógica comercial al crear aplicaciones.