Descripción general de las nuevas características de NestJS 6

Nosotros en TestMace estamos usando NestJS activamente para desarrollar nuestros servicios. Hoy, su atención es una traducción de un artículo dedicado a una revisión de las características de la nueva versión principal de NestJS.



Hoy me complace presentar el lanzamiento oficial de Nest 6, un marco progresivo de Node.js para crear aplicaciones de servidores empresariales eficientes.


Para nuestra comunidad, el último año no ha pasado sin dejar rastro: la popularidad ha crecido en casi un 300%, que es 4 veces más que cualquiera de las bibliotecas HTTP existentes. Hablaron sobre Nest en una gran cantidad de conferencias en todo el mundo, y se crearon muchos artículos y videos. ¡2018 fue increíble y 2019 será aún mejor!


Que hay de nuevo


¡La nueva versión está preparando muchas funciones interesantes! Desafortunadamente, no tendremos tiempo para cubrirlos a todos, ¡pero definitivamente nos centraremos en los más populares!


Alcances de inyección


En versiones anteriores de Nest, cada proveedor era compartido por varias solicitudes. El uso de singletones reduce el consumo de memoria y mejora el rendimiento de la aplicación.


Sin embargo, en algunos casos, puede ser necesario un control adicional sobre el ciclo de vida de cada proveedor. Por ejemplo, al implementar un caché separado para cada consulta en una aplicación GraphQL al crear sistemas multiusuario. Para resolver estos problemas, el contenedor IoC ahora tiene otro nivel de detalle, lo que le permite crear nuevos ámbitos de inyección: el alcance transitorio y el alcance de solicitud.



→ Puedes leer más sobre ellos aquí.

Plataformas


Nest es un marco completo e independiente de la plataforma. Gracias a esto, los desarrolladores pueden crear bloques lógicos que pueden reutilizarse en varios tipos de aplicaciones. Con Nest, puede crear fácil y fácilmente una aplicación web, una utilidad de consola, una cola de trabajos y, en general, ¡cualquier cosa! Hemos tomado toda la funcionalidad relacionada con la plataforma en paquetes separados como @nestjs/platform-express , y ahora puede escribir aún menos código. ¡Simplemente instale todo lo que necesita para su aplicación!

Eventos


Anteriormente, el funcionamiento de cada canal de comunicación de microservicio se basaba en un paradigma de solicitud / respuesta. Este tipo de mecanismo de interacción era perfecto para la mensajería entre múltiples servicios externos. Al ver la confirmación, puede estar seguro de que el servicio realmente recibió el mensaje.


Sin embargo, para algunos sistemas no es necesario crear canales bidireccionales, ya que esto lleva a una sobrecarga innecesaria cuando solo necesita publicar un evento (sin pedir ninguna respuesta). Es por eso que presentamos mensajes basados ​​en eventos . Gracias a este paradigma, es suficiente simplemente notificar a varios servicios con un mensaje si, por ejemplo, ha surgido una situación determinada en algún lugar del sistema.



También resultó que esta solución en el futuro brindará la oportunidad de integrar plataformas de mensajería más complejas. Sigue las noticias!


GraphQL ♡ TypeScript


Uno de los problemas más comunes con GraphQL es la redundancia de tipos. Al resolver este problema en una versión anterior de Nest, agregamos un compilador que convierte las definiciones escritas en SDL en interfaces (o clases) de TypeScript.

Nest versión 6.0.0 cuenta con un paquete type-graphql que te permite generar archivos GraphQL solo con decoradores TypeScript. Ahora hay dos formas de elegir, y usted puede decidir por sí mismo cuál es más adecuado para sus necesidades específicas. Ambos enfoques se proporcionan en el @nestjs/graphql .

→ Más sobre esto aquí

CLI


El paquete Nest Angular DevKit subyacente se ha actualizado, lo que significa que la interfaz de línea de comandos ahora muestra sugerencias . Además, agregamos soporte para nest g lib , lo que ayudará a simplificar el desarrollo al usar un único repositorio.


La documentación


La documentación oficial de Nest ha sido rediseñada y ahora está completamente escrita en Markdown . En nuestra opinión, será mucho más fácil trabajar con la documentación, y con el tiempo podremos hacerlo aún mejor.


Socios y comunidad


Buenas noticias: ¡ Angular Console (UI para Angular CLI) ahora es compatible con Nest!




Nest se convierte en la principal solución para crear aplicaciones Node estructuradas y escalables en el repositorio Angular.


Además, recientemente lanzamos el canal oficial de Discord . ¡Suscríbete al canal y únete a la discusión de Nest y otros temas interesantes!


Migrando desde Nest 5


Siga las instrucciones para migrar proyectos existentes. Debe deshacerse de cualquier advertencia sobre la indeseabilidad del uso de cualquier parte del programa que pueda aparecer en la consola.


Apoyo


Nest es un proyecto de código abierto con licencia MIT. Su desarrollo actual fue posible gracias al apoyo de la comunidad, nuestro patrocinador principal: Valor Software y otras compañías. Recientemente, dos patrocinadores más se han unido a esta lista: Blueanchor y NovoLogic . Gracias


Tuvimos que recorrer un largo camino, trabajando hasta tarde en el fin de semana y sin dormir durante días, para que naciera nuestro marco. ¡Creo que el bien salvará al mundo! ️


Si desea contribuir a nuestro proyecto, siga el enlace .


Planes futuros


Todavía hay algunos puntos en el ecosistema que me gustaría mejorar.




Ya tengo varias ideas planeadas para implementar en los próximos meses.

  • Nos gustaría reescribir el módulo Swagger para usar TypeScript AST. Esto agregará muchas nuevas características útiles. Lea más sobre esto aquí .
  • Ejemplos de autenticación más complejos y del mundo real para varios proveedores.
  • ¡Implemente aplicaciones sin servidor y más DevOps!
  • El video curso oficial!
  • Artículos educativos.

Agradecimientos


¡Gracias a los patrocinadores, la comunidad y todos los involucrados! Creamos nuestro producto para usted , y solo estamos al comienzo de un largo viaje.

Source: https://habr.com/ru/post/447554/


All Articles