Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Desarrollo Última actualización: 15 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

NestJS es un framework Node.js progresivo para crear aplicaciones de servidor escalables, eficientes y fiables.

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 utiliza ExpressJS bajo el capó. NestJS es amado por los desarrolladores que quieren aprovechar el poder de comprobació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 fácil de usar para principiantes, ya que tiene una buena estructura y herramientas de interfaz de línea de comandos (CLI) fáciles de usar. De este modo, los desarrolladores pueden crear una nueva función con un solo comando utilizando este framework Node.js. 

NestJS proporciona el módulo, el servicio, el controlador y la pila de pruebas para empezar. También puedes recurrir a los numerosos boilerplates y plantillas disponibles para facilitarte el desarrollo. 

La curva de aprendizaje de NestJS será fácil para quienes estén familiarizados con los bucles, la sintaxis y las condiciones en JavaScript y Angular

Características de NestJS

Características de NestJS

Basado en Typescript

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

Contenedor de inyección de dependencia 

La inyección de dependencias separa la inicialización de los objetos que utiliza la clase de la propia clase. En este caso, la clase se denomina "cliente", mientras que las dependencias de la 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 el módulo NestCLI. Hay un montón de cosas que usted puede hacer usando el Nest CLI, tales como;

  • Andamiaje del proyecto
  • Servir el proyecto en modo de desarrollo
  • Crear y empaquetar la aplicación para su distribución en 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 NestJS típica, cada parte lógica de la aplicación vivirá en el mismo límite de dominio (módulo). Esta configuración facilita la organización de los componentes, ya que una aplicación tendrá varios módulos con un conjunto de capacidades estrechamente relacionadas. 

Pruebas unitarias 

Las pruebas automatizadas ofrecen muchas ventajas. Sin embargo, el proceso de configurar dichas pruebas puede ser mucho más complicado. NestJS tiene varias características para ayudar a los equipos a construir y automatizar las pruebas. Lo bueno de NestJS es que se puede utilizar con varias herramientas de pruebas. El sistema de inyección de dependencias Nest está disponible durante las pruebas para simular fácilmente los componentes. 

Base de datos agonística 

Puede integrarse fácilmente con cualquier SQL o NoSQL base de datos en función de tus necesidades y preferencias a la hora de trabajar con NestJS. Conectar NestJS a una base de datos es muy sencillo, ya que basta con cargar un controlador Node.js adecuado. 

Compatible con varias bibliotecas 

NestJS es compatible con varias herramientas, lo que acelera el desarrollo de aplicaciones. Este framework es compatible con Logging, Validation, Caching, WebSockets, TypeORM, Mongoose y GraphQL sin necesidad de configuración adicional. 

Arquitectura y flujo de trabajo de NestJS

NestJS tiene una arquitectura de 3 capas que consiste en controladores, proveedores y módulos. De este modo, los desarrolladores pueden crear código limpio que no se solapa. 

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

Controladores

Los controladores en NestJS sirven de puente entre las peticiones y las respuestas de los clientes. El mecanismo de enrutamiento siempre dirigirá la solicitud a un controlador apropiado cada vez que se realice una solicitud HTTP. El framework utiliza decoradores y clases para crear controladores. 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, tales como helpers, servicios o repositorios, pueden ser tratadas como proveedores una vez que el decorador `@Injectable()` ha sido añadido. Dichos proveedores también pueden inyectarse 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 utilizado como punto de entrada. El uso de múltiples módulos es muy aconsejable si quieres 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 que acompañan a ese módulo. 

Primeros pasos con NestJS

Asegúrate de que Node.js y npm están instalados. Necesitas un entorno de ejecución, y Node.js es perfecto para esta configuración. Necesitas la versión >= 12, excepto la v13. Puedes comprobar si tienes Node.js y npm instalados a través de estos comandos;

node -v
npm -v

Si ambos están instalados, obtendrá un resultado similar al siguiente 

nodo

Si no los tiene, instálelos a través de la aplicación página oficial. Por suerte, tanto Node.js como npm se instalan juntos. 

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

Elegimos que el nombre del proyecto sea mynestapp a efectos de demostración. NestJS te da la oportunidad de trabajar con Typescript o Vanilla JavaScript. Selecciona lo que más te convenga y pulsa enter. Una vez que la aplicación ha sido andamiaje, la estructura de archivos se establecerá, y la carpeta 'src' vendrá con varios archivos de núcleo, 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

Escribe http://localhost:3000/ en tu navegador y aparecerá tu primer "Hello World" en NestJs

NestJS: Ventajas

  • Fácil de aprender. Es fácil dominar NestJS, especialmente si vienes de Angular o tienes conocimientos generales de JavaScript. La documentación detallada también hace que sea fácil dominar el trabajo con este potente framework. 
  • Flexible. Puedes construir muchas cosas usando NestJS. Puedes crear aplicaciones MVC, aplicaciones GraphQL, API RESTful y web sockets usando este framework Node.js. 
  • Incluye miles de módulos. Los módulos soportados por la comunidad facilitan a los desarrolladores la estructuración de distintas funciones al crear 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 framework tiene una arquitectura sólida para facilitar la comprensión de tu código. 

NestJS: Inconvenientes

  • No es favorable para aquellos con experiencia en TypeScript y Angular.. NestJS toma prestado mucho de la arquitectura Angular, y quienes no tengan esos conocimientos pueden tardar en entender la sintaxis y la estructura. 
  • Deficiente en algunos ámbitos. NestJS es todavía joven y puede que no compita favorablemente con algunos frameworks establecidos basados en Python y GO. 

Empresas que utilizan NestJS 

#1. Adidas 

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

#2. Capgemini

Capgemini es una multinacional francesa que ofrece servicios de consultoría, tecnología, externalización y servicios profesionales. Esta empresa utiliza NestJS en su pila tecnológica. 

#3. Roche

Roche es una multinacional del sector sanitario que cuenta con dos divisiones: productos farmacéuticos y diagnósticos. Roche utiliza NestJS como una de las pilas tecnológicas de su sitio web principal. 

Recursos de aprendizaje

#1. NestJS De cero a héroe

de cero a héroe

NestJS Zero to Hero enseña a los desarrolladores a crear y desplegar aplicaciones back-end empresariales utilizando Typescript y Node.js. El curso enseña a crear APIs, Autorización y Autenticación, Pruebas unitarias de aplicaciones Nest y TypeORM para la interacción con bases de datos, entre otras muchas cosas. 

#2. NestJS: Guía completa para desarrolladores

Complete-devs-guide

Este curso enseña a los desarrolladores a crear APIs backend utilizando Nest, TypeScript y TypeORM. Esta guía completa tiene todo lo que necesita para configurar su aplicación NestJS de codificación, pruebas y despliegue. También obtendrá una comprensión detrás de las escenas del marco web NestJS. 

#3. Dominar 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 moderna de bases de datos, entre muchas otras cosas. 

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

NestJs-en-Práctica

NestJS en la Práctica enseña todo lo que necesitas aprender sobre NestJS, desde Módulos, Controladores, GuardsServices, Pipes y Middleware. El curso tiene un enfoque basado en proyectos donde se codifica y aloja su código en GitHub con archivos zip descargables para cada sección. 

#5. Nest.js: Un Framework Node.js Progresivo

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

Vista previa Producto Valoración Precio
Nest.js: Un Framework Node.js Progresivo Nest.js: Un Framework Node.js Progresivo $24.99

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

Nest.js práctico 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 breves discusiones, consejos y frases útiles a la hora de crear tu aplicación NestJS. 

Conclusión 

Además de ser un potente Marco Node.jsNestJS es también uno de los frameworks Typescript más populares para aplicaciones del lado del servidor. 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 quieren centrarse en la construcción de la lógica de negocio a la hora de crear aplicaciones. 

  • Tito Kamunya
    Autor
Gracias a nuestros patrocinadores
Más lecturas sobre desarrollo
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba el lunes
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder