NestJS

> Temas > NestJS
Editar

Framework para desarrollo de aplicaciones web backend que se ejecuta sobre la plataforma NodeJS. Nest tiene foco en la arquitectura de las aplicaciones y está pensado para crear servicios web o API REST.

NestJS es un framework para el desarrollo de aplicaciones del lado del servidor. Ofrece un marco de trabajo y una serie de herramientas preconfiguradas, en el que podemos basarnos para desarrollar proyectos backend con mayor agilidad y homogeneidad.

Este framework tiene el foco en la arquitectura y va más allá de otros frameworks minimalistas de Node. Gracias al diseño y la arquitectura propuesta por Nest podemos construir más fácilmente aplicaciones escalables y mantenibles. Su arquitectura está inspirada en la de Angular, lo que nos garantiza unas prácticas conocidas y de eficacia probada.

Dentro de las herramientas ya configuradas en proyectos Nest encontramos TypeScript así como todo un sistema para compilado del código en modo desarrollo que nos ahorrará mucho tiempo. También dispone de su propio CLI para construir aplicaciones y artefactos de una manera cómoda y rápida.

La página principal del framework es https://nestjs.com/

Más información:

NestJS

Manuales

Manual de NestJS
Aprende a desarrollar con Nest, el framework backend sobre la plataforma NodeJS más avanzado, que promueve una correcta arquitectura de los proyectos web, principalmente pensado para el desarrollo de APIs.

Características de Nest

Como todo framework, Nest facilita mucho el desarrollo y aporta productividad, además de promover prácticas deseables que aumentan la calidad de los proyectos y la homogeneidad del código. Además, algunas características de este popular Framework backend son:

  • Centrado en la arquitectura
  • Todos sus componentes son orientados a objetos
  • Inspirado en Angular
  • Capaz de realizar todo tipo de proyectos pero especialmente servicios web
  • Promueve el uso de TypeScript

NestJS y TypeScript

Cuando desarrollas con Nest en NodeJS puedes usar TypeScript sin necesidad de preocuparte por la configuración de tu entorno para la compilación del código a Javascript.

En realidad es posible programar con Javascript puro, utilizando las características más modernas del lenguaje, para lo que también incorpora un compilador de Babel. Sin embargo, la recomendación para trabajar con Nest es usar TypeScript, ya que la comunidad de Nest está volcada en este lenguaje, por lo que la mayoría de tutoriales y ejemplos que podrás encontrar en Internet están basados en TypeScript.

Editar

Para qué podemos usar NestJS

Con Nest podemos desarrollar aplicaciones de todo tipo, que se ejecutan en ordenadores o con las que se pueden implementar servidores capaces de responder a las solicitudes http. Esto incluye principalmente las siguientes posibilidades:

  • Creación de sitios web tradicionales, mediante un servidor que devuelve directamente HTML, CSS o JS
  • Aplicaciones de consola standalone
  • APIs REST o APIs basadas en GraphQL

Esta última opción es la más popular dentro de las aplicaciones de Nest, ya que es un framework especialmente orientado a la realización de aplicaciones basadas en servicios web.

En resumen, podemos usar Nest allá donde se usa NodeJS y donde deseemos disponer de todo un set de herramientas pensadas para acortar el setup de los proyectos y aumentar la productividad, gracias a un flujo de desarrollo más optimizado.

Editar

Qué nos ofrece Nest

Como todo framework, NestJS nos aporta dos principales ventajas:

  1. Toda una base de código sobre la que nos podemos basar para desarrollar nuestras aplicaciones, que incluye una estructura básica inicial y la integración de módulos y librerías para resolver las necesidades más comunes de los proyectos.
  2. Unas guías de desarrollo, la arquitectura, que todos los componentes del equipo tendrán que seguir, lo que nos ayudará a tener aplicaciones más homogéneas, a lo largo de todo el proyecto o de todos los proyectos de la empresa.

Para facilitar todo el proceso de desarrollo dispone de un CLI capaz de generar el código de proyectos nuevos, donde tenemos integradas todas las herramientas necesarias para el desarrollo completo, y la posibilidad de generar el esqueleto de numerosos artefactos o clases de sus componentes principales de arquitectura.

Editar

Arquitectura de Nest

Uno de los fuertes del framework backend Nest es que tiene una arquitectura sólida, que facilita el desarrollo de las aplicaciones escalables y mantenibles.

La arquitectura está basada en capas, donde la más importante son los módulos. Los módulos tienen una organización jerárquica, donde existe un módulo principal. Dentro de cualquier módulo podemos encontrar artefactos, que son siempre clases de programación orientada a objetos, entre las que se incluyen:

  • Módulos: otros módulos dependientes
  • Controladores: que se encargan de implementar los casos de uso de la aplicación. Típicamente responden a las rutas de las aplicaciones web, es decir, las URL o endpoints de un API.
  • Providers: dentro de los cuales podemos encontrar muchas clases, de diversos tipos, entre las que tenemos los pipes, servicios, repositorios, etc. Todas estas clases tienen una característica en común, que son inyectables en otras clases.

Esta arquitectura está fuertemente inspirada en Angular, por lo que los desarrolladores de este framework frontend serán capaces de entender muy bien el desarrollo backend con Nest.

Editar

Bases de datos con Nest

Nest soporta todas las bases de datos que soporta el propio Node, ya que podríamos usar cualquiera de los conectores de base de datos para acceder, recuperar datos y modificarlos. Sin embargo, para mayor facilidad, lo normal es acceder a las bases de datos mediante un ORM.

En el framework tenemos integrado como ORM tanto TypeORM como Sequelize. Podemos usar cualquiera de esas opciones, ya que ambas son excelentes, siendo un poco más popular TypeORM. Además podemos usar otros ORM para Node como es el caso de Prisma, que viene desde atrás aportando características adicionales.

Editar

¿Quieres añadir algo sobre NestJS?

Crea artículos, recursos o comparte información sobre NestJS

Crear un bloque

Temas relacionados

Preguntas y respuestas de NestJS

Se han recibido 1 faqs en NestJS

Hacer una pregunta