¿Por qué deberías considerar NestJS para tu próximo proyecto?
Esta es la primera parte de una serie sobre el framework Node.js conocido como NestJS. En este artículo, veremos por qué y cómo usar NestJS.
He estado usando Express.js desde 2015, y me encanta Express.js, está bien diseñado y podemos conectar cualquier biblioteca de JavaScript y usarla.
Fui desarrollador de .Net y PHP durante mucho tiempo y ahora trabajo con Angular, VueJS y ElectronJS. Extraño algunas cosas mientras trabajo con ExpressJS.
-
CLI: Angular nos ofrece una CLI para comenzar fácilmente con un nuevo proyecto. Incluso en .Net, puedo crear una aplicación usando la CLI. Aunque hay muchos generadores disponibles, un CLI con ExpressJS habría sido una gran adición.
-
Arquitectura limpia: ExpressJS no viene con ninguna arquitectura limpia definida, y, por supuesto, no es el propósito de ExpressJS, ya que usted es libre de definir su propia arquitectura. Pero para una aplicación empresarial, prefiero algo que tenga una arquitectura limpia y bien definida.
-
Uso de código compartido: para una aplicación empresarial, es posible que necesitemos compartir el código entre múltiples aplicaciones/módulos o incluso API. En otros lenguajes de programación, esto se puede lograr usando bibliotecas. En ExpressJS, podemos crear un módulo npm y ponerlo a disposición a través de Artifactory.
NestJS es un framework escrito sobre ExpressJS, y está escrito en TypeScript. Veamos algunas ventajas:
-
Soporte de TypeScript: NestJS es compatible con TypeScript, lo que me hace sentir muy cómodo ya que he estado usando TypeScript durante mucho tiempo mientras trabajaba con Angular. También tiene la opción de elegir JavaScript.
-
Uso de código compartido: NestJS admite la creación de bibliotecas y aplicaciones utilizando la CLI. Compartir el código se vuelve realmente fácil y se convierte en una excelente opción para aplicaciones empresariales.
-
Soporte monorepo: Angular soporta monorepo, y comenzando con la Versión 6, NestJS viene con soporte monorepo.
-
Ruta de aprendizaje: Otra cosa que me gusta de NestJS es que si vienes de un entorno .Net o Java y tienes una idea sobre la creación de API, NestJS es fácil de aprender. Además, si eres un desarrollador Angular, te sentirás como en casa ya que sigue el mismo patrón modular.
-
Soporte de Fastify: NestJS usa ExpressJS como framework predeterminado, pero también tiene soporte para Fastify y se puede configurar fácilmente.
Si tengo que definir la arquitectura de la API creada con NestJS, así es como se ve: tenemos un módulo raíz disponible, que se usará para configurar proveedores de bases de datos, definir el controlador, agregar middleware, agregar pipes y guards, y para proporcionar servicios.
También podemos tener un módulo para cada controlador. Veremos cómo lograr eso en las próximas secciones. Una vez que nuestro módulo recibe una solicitud, será redirigido al controlador respectivo (que manejará la solicitud). El servicio es opcional, pero deberíamos intentar utilizarlo para seguir el principio de responsabilidad única (SRP).
Ahora que tenemos una idea de por qué deberíamos usar NestJS. Veamos cómo usarlo.
Antes de que podamos comenzar a usar NestJS, necesitamos instalar la CLI de NestJS. Ejecute el siguiente comando para instalar la CLI globalmente:
npm install -g @nestjs/cliTambién puede descargar el proyecto inicial de GitHub y usarlo.
Una vez que la CLI esté instalada, ejecute el siguiente comando para crear una nueva aplicación llamada shoppingAPI. Utilizaremos la misma API para nuestras próximas secciones.
nest new shopping-apiLa CLI crea una aplicación usando TypeScript como lenguaje predeterminado. Si le gusta JavaScript como lenguaje, puede ejecutar el siguiente comando:
nest new shopping-api -l JSUna vez que se crea un nuevo proyecto, podemos usar el siguiente comando para ejecutar la aplicación.
# Nos movemos a la carpeta del proyecto
cd shopping-api
# Levantamos el servidor para poder probar
# nuestra API (en modo observador)
npm run start:devLa aplicación está configurada para ejecutarse en el puerto 3000 de forma predeterminada. Una vez que el controlador ya está definido, visite http://localhost:3000/, ¡y obtendrá Hello World! como respuesta.
Hemos creado nuestra primera aplicación usando NestJS con una configuración mínima. En la siguiente parte, veremos la estructura de la aplicación y configuraremos nuestro propio controlador para manejar las solicitudes HTTP.
NestJS es realmente fácil a la hora de comenzar, y si ya ha usado .Net, Java o incluso ExpressJS, la mayoría de los conceptos son similares.
Ofrece una CLI y, al usarla, podemos estructurar fácilmente nuestra aplicación y centrarnos más en nuestro código. Para una aplicación empresarial, se vuelve realmente fácil dividir el código en múltiples módulos usando los módulos NestJS.



