Qué es Nest Framework

5min

De tiempo en tiempo aparecen nuevos frameworks basados en Javascript. De hecho es un mercado que a menudo consideramos saturado y donde poco más se puede ofrecer. Sin embargo, Nest nos aporta un enfoque nuevo que ha provocado una gran aceptación por parte de un nutrido grupo de desarrolladores. En este artículo te vamos a explicar qué es Nest y por qué es un framework que deberías conocer. Además, podrás visualizar el webinar sobre  Nest Framework que realizamos recientemente.

Índice

Qué es Nest

Nest, o NestJS, es un framework backend que funciona sobre la plataforma NodeJS y que pone el foco especialmente en la arquitectura de las aplicaciones. Si bien es cierto que existen otros frameworks backend para el desarrollo con NodeJS, como el conocido Express, estos dejan muy libre al desarrollador en lo que respecta a la arquitectura de la aplicación y, a menudo, esta situación deriva en una pobre organización del código, que repercute en un difícil mantenimiento y escalabilidad de las aplicaciones.

Con Nest obtenemos las ventajas de un buen diseño orientado a objetos, además de integrar toda una serie de herramientas que permiten mayor agilidad de desarrollo y aplicaciones más robustas.

Arquitectura inspirada en Angular

Los desarrolladores que vienen de Angular encontrarán que la arquitectura de Nest les resulta especialmente familiar, dado que está fuertemente inspirada en la del popular framework frontend. En Nest encontramos igualmente una división del código por módulos y artefactos conocidos como los controladores, servicios, pipes, etc. Así, resulta un framework excelente para desarrollar backend, muy fácilmente asumible por las personas que ya tienen experiencia en Angular.

Qué nos ofrece Nest

Además de la arquitectura, Nest, como todo framework, nos ofrece una buena cantidad de utilidades que permiten desarrollar con mayor productividad. Entre ellas podemos destacar:

  • Una herramienta de línea de comandos (CLI) muy completa, con la que se puede generar el esqueleto inicial de las aplicaciones pero además el scaffolding de los artefactos que se tendrán que ir desarrollando.
  • Toda una integración de herramientas y comandos para levantar un servidor para desarrollo con refresco automático cuando cambia el código fuente, el testing, linting, etc.
  • Integración con módulos específicos para el desarrollo de las partes habituales de las aplicaciones, como la configuración ORM para el acceso a las bases de datos, sistemas de seguridad para autenticación, etc.
  • Integración con TypeScript: lo que nos permite usar el lenguaje y sus características extra encima del propio Javascript.

Todo ello, sin olvidarnos de que Nest usa por debajo las librerías más populares de Node, como el propio Express. De hecho, si estamos acostumbrados a usar cualquier package de Node, es perfectamente posible seguir trabajando con él en las aplicaciones desarrolladas con Nest.

Qué tipo de aplicaciones puedes hacer con Nest

Debemos entender que Nest es un framework backend, por lo que el tipo de aplicaciones que podremos realizar son básicamente aquellas que funcionan del lado del servidor. Con Nest podemos realizar desde aplicaciones web tradicionales, que devuelven HTML, hasta aplicaciones basadas en API REST o GraphQL, que devuelven generalmente datos en crudo que serán consumidos desde otras aplicaciones frontend. También podemos hacer software completamente standalone, que se ejecuta sobre el terminal.

Sin embargo, igual que ocurre con el desarrollo Node en general, lo cierto es que Nest se utiliza más como plataforma de desarrollo de APIs capaces de devolver JSON a los clientes que las utilicen.

Cómo empezar con Nest

Empezar a usar Nest y comenzar a disfrutar de sus ventajas es tan sencillo como instalar el CLI. Para ello necesitamos tener Node en nuestro sistema previamente instalado y lanzar el comando siguiente:

npm i -g @nestjs/cli

A continuación podemos crear nuestro primer proyecto con Nest lanzando el comando «new» del CLI que acabamos de instalar.

nest new mi-nuevo-proyecto

Con esto se creará la carpeta «mi-nuevo-proyecto» en el ordenador y podremos encontrar en ella la aplicación base. Se habrán instalado además todas las dependencias necesarias para poder iniciar la aplicación. Por tanto para arrancar la aplicación será tan sencillo como situarse en la carpeta y lanzar el correspondiente script npm:

cd mi-nuevo-proyecto
npm run start:dev

La nueva aplicación se pondrá en marcha y podremos acceder a ella mediante la ruta siguiente:

https://localhost:3000

Breve vistazo a la arquitectura de Nest

Al arrancar la aplicación encontraremos un sencillo «Hello World», pero si accedemos a los archivos del proyecto podremos encontrar que resulta bastante sencillo reconocer el esquema de arquitectura que propone Nest. Para ello tenemos que echar un vistazo a la carpeta «src», donde encontraremos básicamente los siguientes archivos:

  • ts: Que forma el código de arranque del proyecto. Este código de arranque permite levantar el servidor en el puerto 3000. Además veremos que carga el módulo principal.
  • module.ts: Es el módulo principal de aplicación, usado para arrancar mediante el main.ts. Este módulo, como cualquier otro, declara qué cosas se van a encontrar en él.
  • controller.ts: es el archivo de nuestro controlador, donde se definen básicamente las rutas de aplicación. En este archivo podemos encontrar la ruta «GET» que devuelve el «Hello Word» cuando accedemos a la raíz del servidor.
  • service.ts: este archivo es un servicio de muestra, creado simplemente para demostrar cómo las aplicaciones acceden a los datos a través de los servicios. Simplemente tiene un método en el que se apoya el controlador para devolver el texto que mostrará en la ruta raíz.

Puedes encontrar más explicaciones sobre Nest en su documentación oficial.

Webinar Nest

Si te interesa el tema, te invitamos a ver el webinar sobre donde analizamos qué es Nest Framework para NodeJS y para qué podemos usarlo. Además, también te explicaremos visualmente cómo realizar estor primeros pasos con Nest para desarrollar aplicaciones web.

Descubre otros webinars que vamos a realizar en los próximos meses y no dudes en registrarte en todos los que te interesen, para ello sólo tienes que entrar en la sección de webinars.

Fernán García de Zúñiga

Productos relacionados: