Índice del contenido[Esconder][Espectáculo]
En 2021, JavaScript fue el lenguaje de programación más utilizado.
El atractivo de esta tecnología es innegable, como lo demuestra la gran cantidad de marcos que permiten la programación de JavaScript.
Hay Angular, React y Vue en el frontend, así como Express y Next en el backend, por mencionar algunos.
Con tantos marcos maravillosos para la programación de back-end en JavaScript accesibles, puede estar pensando por qué buscaría algo diferente en lugar de simplemente usar Express o Next.
Tal vez necesite impulsar el proceso de desarrollo rápidamente con un modelo decente, y agregar manualmente no solo nuevos controladores sino también servicios lo enferma.
O desea crear un software grande y escalable que sea fácil de administrar. O tal vez simplemente desea trabajar de una manera más eficiente y conveniente.
Independientemente de lo que sea cierto en sus circunstancias, Nest.js puede ser la solución perfecta para sus necesidades.
Esta publicación proporcionará información de NestJS, así como experiencia práctica.
¿Qué es NestJS?
nidojs es un marco de Nodo progresivo que es de código abierto, ampliable y adaptable .js marco para construir, involucrar y desafiar sistemas de back-end. Ahora es el Nodo con la tasa de crecimiento más rápida.
Marco TypeScript para js. NestJS se usa para crear aplicaciones que son escalables, comprobables y poco conectadas.
Agrega escalabilidad a Node. Los servidores Js se han llevado a un nivel completamente nuevo. PostgreSQL, MongoDB y MySQL se encuentran entre las bases de datos admitidas.
NestJS es extensible porque se puede usar con otras bibliotecas; flexible debido a su ecosistema adaptable de pleno derecho. Y progresivo, ya que admite funciones y principios de diseño de JavaScript.
Está influenciado principalmente por Angular, React y Vue y viene con inyección de dependencia incorporada.
Caracteristicas
- Es fácil de usar, aprender y dominar.
- es gratis y De código abierto (Licencia MIT)
- Potente interfaz de línea de comandos (CLI) para aumentar la productividad y simplificar el desarrollo
- Programas de prueba unitaria que son fáciles de usar
- Se utiliza TypeScript, un lenguaje fuertemente tipado que es un superconjunto de JavaScript.
- Desarrollo y mantenimiento de un código base activo.
- Compatibilidad con cientos de módulos específicos de nidos que simplifican la interfaz con tecnologías e ideas populares como TypeORM, Mongoose, GraphQL, registro, validación, almacenamiento en caché, WebSockets y más.
¿Cuáles son los componentes básicos de NestJS?
Los componentes de construcción de las aplicaciones de Nest se enumeran a continuación; hay otros, pero estos tres son los más significativos. Echemos un vistazo a ellos rápidamente.
1. Controladores
Los controladores están a cargo de procesar las solicitudes entrantes y responder a los clientes. Recibe solicitudes HTTP particulares y el sistema de enrutamiento determina qué controlador recibe qué solicitud.
Luego redacta una respuesta adecuada para enviar. Con la ayuda de clases y decoradores, se construye un colector simple y cada controlador tiene su propio conjunto de rutas para realizar varias tareas.
2. Proveedores
Los proveedores son una idea clave en Nest. Muchas de las clases principales de Nest (servicios, repositorios, fábricas, ayudantes, etc.) pueden manejarse como proveedores.
La noción básica de un proveedor es que se puede inyectar como una dependencia; esto implica que los objetos pueden formar varias asociaciones entre sí, y la función de "conectar" las instancias de los objetos se puede subcontratar principalmente al sistema de tiempo de ejecución de Nest.
3. Módulos
Un módulo es una clase con el decorador @Module() que organiza los componentes de la estructura de la aplicación. Cada aplicación tiene un módulo raíz que se utiliza para construir el gráfico de la aplicación, lo que resuelve aún más las dependencias e interacciones entre el proveedor y el módulo.
Este decorador proporciona metadatos a Nest.js para identificar qué componentes, controladores u otros recursos se utilizarán en el código de la aplicación y combinarlos en un solo conjunto.
Cada módulo tiene una colección de capacidades que están conectadas de alguna manera.
Primeros pasos con NestJS
1. Instalación
Instalemos NestJS y hagamos un proyecto con él siguiendo estos pasos:
Como resultado de esto, se creará la siguiente estructura de directorios:
2. Controladores
Los bloques de construcción de Nest son los controladores. Estas son las ubicaciones donde se manejarán las solicitudes entrantes. Puede especificar la ruta de la ruta utilizando modificadores de métodos HTTP (Obtener, Publicar, Poner, Eliminar, etc.) decoradores, como se ve en el código a continuación.
Nestjs emplea el enfoque de decorador y se desarrolla principalmente en Typescript, aunque también es compatible con JavaScript. También puede usar un validador de clase para validar el cuerpo de la solicitud.
Solo voy a crear una instancia de servidor Nestjs y agregar ValidationPipe globalmente. Las tuberías son solo métodos que se ejecutan antes que los controladores. Las canalizaciones también se pueden aplicar a nivel de método/argumento mediante el decorador @UsePipes.
3. Proveedores
Los proveedores son otro componente crítico de Nestjs. De lejos, estaba almacenando datos en una variable temporal. Es por eso que una tarea tan simple se puede lograr usando controladores de controladores.
Sin embargo, para una lógica más grande y complicada, la separación y reutilización del código sería difícil. Aquí es cuando entran los proveedores. Puede declarar/crear un proveedor en la parte superior de una clase utilizando el decorador @Injectable. Luego, al usar proveedores, puede realizar inyección de dependencia, registro y otras tareas.
4. Módulos
Los módulos de Nestjs no son globales; en cambio, tienen profundidad.
Sin embargo, también se puede compartir con cualquier otro módulo. Aunque, al igual que Angular, ofrece módulos globales, es más recomendable mantener los servicios/controladores en el módulo donde se usan más comúnmente en Nestjs.
La NestCLI se usa para producir módulos la mayor parte del tiempo, y la CLI agrega automáticamente los proveedores/controladores generados en el contexto de ese módulo. Estos se conocen como módulos de características.
5. Filtros de excepción
Los filtros de excepción son controladores de errores que se invocan cuando un controlador genera una excepción. Gestiona automáticamente el problema y envía un mensaje de error apropiado y fácil de usar.
El paquete @nestjs/common proporciona muchas excepciones heredadas de HttpException, incluidas NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException y muchas otras. Incluso puede diseñar su propio ExceptionFilter.
6. Programa intermedio
Una función que se invoca antes que el controlador de ruta se llama middleware. Los objetos de solicitud y respuesta, así como la función de middleware next() en el ciclo de solicitud-respuesta de la aplicación, son accesibles para las funciones de middleware.
Por lo general, se utiliza una variable llamada next para identificar la siguiente función de middleware. El middleware personalizado de Nest se puede implementar en un método o una clase usando el decorador @Injectable().
7. Guardias
Los guardias solo son responsables de una cosa. Es su responsabilidad evaluar si el controlador procesará o no una solicitud en función de circunstancias específicas (específicamente, lógica definida por el usuario).
Es útil para la autenticación/autorización y es el método recomendado en Nestjs.
Aunque la autenticación/permisos, etc., se pueden realizar mediante middleware, no se realiza en Express ni en otros servidores HTTP, ya que no tienen un contexto fuerte relacionado y no tienen motivos para saber qué método se utilizará para procesar la solicitud.
Ventajas
- El marco depende en gran medida de las anotaciones, que se utilizan para producir cualquier cosa, desde puntos finales hasta documentación de Swagger. Los puntos finales son básicos y ordenados, y las anotaciones facilitan el desarrollo en general.
- Es sencillo externalizar módulos de uso general y reutilizar código en muchos proyectos, ya que Nest.js es un marco basado en módulos.
- La estructura de carpetas de Nest.js está significativamente influenciada por Angular. Al diseñar un servicio de Nest, esto permite un tiempo de inactividad mínimo.
- Los componentes tienen sus propios directorios, y la raíz contiene el módulo de la aplicación y el archivo principal. Debido a la simplicidad de la estructura, se puede prestar más atención al diseño de los terminales y sus clientes que a la estructura de la aplicación.
- Nest, como Angular, ofrece una buena herramienta de línea de comandos, Nestjs/cli, que está disponible a través de Node Package Manager.
Desventajas
- Nest tiene una ventaja en términos del uso de TypeScript y la integración de Angular, pero carece del apoyo financiero de una gran corporación.
- La falta de documentación representa la mayor amenaza para los usuarios de Nest. Aunque el marco tiene excelentes interacciones con otros marcos, la documentación es escasa y no aborda ninguna dificultad potencial.
- Nest tiene una ventaja en términos de uso de TypeScript y Angular.
Conclusión
NestJS proporciona a los desarrolladores una gran ventaja. Para comenzar el desarrollo, todo lo que necesita hacer es crear una nueva aplicación y estás listo para irte. Este marco proporciona un impulso significativo de inmediato, al mismo tiempo que lo ayuda a tomar etapas adicionales al establecer una arquitectura de aplicación adecuada.
Hace uso de métodos y tecnología de vanguardia para producir aplicaciones que son manejables y duraderas. Se puede usar para conectarse a GraphQL, WebSockets y construir microservicios.
Deje un comentario