¿Por qué utilizar el framework NestJS?

Compartir esta publicación

Como desarrollador de front-end, me gustaría decir que el framework NestJs fue la mejor opción para empezar a tocar la parte de backend de las aplicaciones. Siempre preguntaba a mi tutor en Apiumhub sobre patrones de diseño, arquitectura limpia y microservicios. Entonces me mostró el enlace a la documentación de NestJs, totalmente completa y muy bien estructurada. Fue un buen descubrimiento para mí perderme en esta página y aprender sobre decoradores, proveedores, inyección de dependencias, pruebas, autenticación, y más temas de diferentes áreas.

¿Qué es NestJs?

En primer lugar, ¿qué es este NestJs? Es un marco de trabajo Node.js de código abierto para el desarrollo de sistemas backend desafiantes que utilizan la convención del paradigma de diseño sobre la configuración que elimina la necesidad de una configuración explícita permitiendo a los desarrolladores utilizar herramientas comunes y el código de una manera particular.

Puede crear aplicaciones escalables, comprobables y poco acopladas. Está significativamente influenciado por Angular y una característica importante es el poder de la inyección de dependencia, que permite inyectar un módulo en otro, promoviendo la reutilización del código.

¿Qué proporciona NestJs y cuáles son las ventajas de utilizarlo?

NestJs está creado tanto para Monolitos como para Microservicios. Puedes construir APIs Rest, aplicaciones MVC, aplicaciones GraphQL, Web Sockets, o CLIs, y trabajos CRON.

Como las aplicaciones Nest están escritas en TypeScript, la detección de errores en tiempo de compilación protege nuestro código y evita errores al escribir numerosos microservicios que tienen todos el mismo modo de respuesta.

  Entrevista con Ileana Diaz - Desarrolladora de Backend en Apiumhub

NestJS permite crear microservicios excepcionales, bien organizados y ligeros. Debido a la estructura impuesta por NestJs, los desarrolladores deben escribir el controlador, el servicio y el repositorio en lugares específicos y de una manera concreta. Esto mejora el proceso de desarrollo, ya que evita errores que podrían dar lugar a tener que gastar mucho esfuerzo más tarde en la refactorización de la base de código y permite centrar más la atención en el diseño de los puntos finales en lugar de la estructura de la aplicación.

Dispone de una útil herramienta de interfaz de línea de comandos llamada NestCLI que facilita la generación del código de la caldera (Módulos, Middleware, Controlador, etc.) Además, las configuraciones de TypeScript, Prettier y Eslint están totalmente configuradas con NestJS.

Ofrece integración con Jest y Supertest, y mediante el sistema de inyección de dependencias, facilita la imitación de componentes en el entorno de pruebas.

La documentación de NestJs es una de las más completas y comprensibles, al escudriñar rápidamente la documentación, puedes encontrar la respuesta a tu error y reducir el tiempo de depuración.

Conceptos fundamentales de NestJs

Decoradores

Un decorador es una expresión que acepta tres argumentos: un objetivo, un nombre y un descriptor de propiedad, y devuelve una función. Se aplica insertando el decorator en la parte superior de lo que se intenta decorar, seguido del carácter @. Hay tres decoradores diferentes como clase ( @Controller() ), método( @Get() ), o argumento ( @Body() ).

En NestJs todo puede ser controlado con decoradores. Puedes conectar un controlador a una colección de rutas, especificar un método de petición, añadir contenido al cuerpo de la petición o analizar los parámetros de la misma. También puedes crear tus propios decoradores personalizados para utilizarlos dentro de tu proyecto. Como en el ejemplo de la documentación de NestJs:

  Buenas Practicas con Vue

s gHLRaDrfg57TEKv3BH1MYuld0iadUb4fMrXSYPXd6KcvsfE4lxRHRhIS5Yj5qnraolKIglsgfw0wBsYN7D8rk8E1a5RdEOoEqg cUpHqErLr4ztbhLCMwRf1t svY0PzFGVPoVRrudBH7MaHin yKH Kh3dsS jp6r4 cBCyrl7NCZZAS9TEaEi2Cw2g

Controladores

Los controladores manejan las solicitudes entrantes y devuelven las respuestas al cliente. Puedes especificar una URL como ruta principal para este controlador y un decorador de método como @Get, @Post, @Put o @Delete utilizando el decorador @Controller.

Proveedores

Los proveedores son un concepto esencial en NestJs. Las clases principales de Nest, como los servicios (manejan el acceso a los datos y la lógica de negocio), los repositorios (manejan el acceso a una base de datos), las fábricas, etc, pueden ser considerados como proveedores. Es posible construir nuevos proveedores e inyectarlos en los controladores o proveedores existentes. Por ejemplo, un proveedor de servicios se utilizará con el decorador @Injectable que añade metadatos y declara que este servicio puede ser gestionado por el contenedor Nest IoC. Nest IoC gestiona las interacciones entre los proveedores.

Sk0alSKcYc9a6UFOUQFEU6grYq22AH0cDuZAFvjE7jaH J984Tm 6X73aVkP4z7y1DDF1zShmrLUP2sdJVH0kPUm1MJR55qzmJ1jT yuAipX9QhHWajFOnMUCjwOmvZc vVEAeIZajT9ak9LTnmQO eUUpYnFReK1SpADbMzTCA9aXEuWv98nUGz3ZbY3g

Del curso ‘NestJS: The Complete Developer’s’ GuideCourse de Stephen Grider

Módulos

Los módulos son las piezas fundamentales de las aplicaciones Nest. El AppModule se incluye automáticamente cuando se crea una aplicación Nest. Para organizar eficazmente sus componentes, se aconseja agrupar cada una de sus características en un módulo.

Por defecto, el módulo incluye proveedores. Por lo tanto, los proveedores que no forman parte directamente del módulo actual ni se exportan directamente desde los módulos importados no pueden ser inyectados.

Pipes

Hay dos usos comunes para los pipes: transformar los datos de entrada a la forma deseada y validarlos para lanzar una excepción si no son válidos.

Guardias

Los guardianes deciden si una solicitud específica será procesada por el manejador de rutas dependiendo de condiciones particulares en tiempo de ejecución. Ayudan a configurar fácilmente la lógica de autenticación y autorización.

  Ventajas de React 18: guía completa

Conclusión

En este artículo, recapitulamos algunas de las ideas clave de NestJs. Con NestJs puedes construir límites claros de dominio, escribir módulos reutilizables y escribir código poco acoplado y mantenible. Es increíble la cantidad de decoradores disponibles en este marco para realizar diversas funciones que requieren una codificación mínima o nula. Además, la inyección de dependencias hace que sea sencillo simular servicios, por ejemplo, en las pruebas de los controladores.

NestJs tiene una gran comunidad y una buena documentación para explorar en su sitio web. Además, he incluido el tutorial de NestJs en español de un colega que ilustra las ideas clave con ejemplos concretos y enumera herramientas y bibliotecas útiles para usar con NestJs.

Recursos

Author

  • Beste Burcu Bayhan

    Graduated from Istanbul Technical University with a bachelor degree of computer engineering in June 2018. During her studies, she has been involved in projects in various areas including web development, computer vision and computer networks.

    Ver todas las entradas

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Suscríbete a nuestro boletín de noticias

Recibe actualizaciones de los últimos descubrimientos tecnológicos

¿Tienes un proyecto desafiante?

Podemos trabajar juntos

apiumhub software development projects barcelona
Secured By miniOrange