Skip to content

Instantly share code, notes, and snippets.

@intelguasoft
Last active April 2, 2020 05:48
Show Gist options
  • Select an option

  • Save intelguasoft/f5a47a38980a6bf9f076e0e855ee19b5 to your computer and use it in GitHub Desktop.

Select an option

Save intelguasoft/f5a47a38980a6bf9f076e0e855ee19b5 to your computer and use it in GitHub Desktop.
Una introducción a modo de guía de porque recomendamos usar NestJS.

Comenzando con NestJS

¿Por qué deberías considerar NestJS para tu próximo proyecto?

Fondo de NestJS

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.


Mi historia con Node.js

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.


El ecosistema Angular vs el ecosistema Node.js/Express.js

  • 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 al rescate

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.


Arquitectura

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).


Instalación

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/cli

También puede descargar el proyecto inicial de GitHub y usarlo.


Creando nuestra primera API

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-api

La 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 JS

Ejecutar y probar la API

Una 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:dev

La 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.


Conclusión

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment