En 2021, JavaScript foi a linguaxe de programación máis utilizada.
O atractivo desta tecnoloxía é innegable, como se aprecia pola gran cantidade de frameworks que permiten a programación de JavaScript.
Hai Angular, React e Vue no frontend, así como Express e Next no backend, por mencionar algúns.
Con tantos marcos marabillosos para a programación de backend en JavaScript accesibles, podes estar pensando por que buscaría algo diferente en lugar de simplemente usar Express ou Next.
Quizais necesites iniciar o proceso de desenvolvemento rapidamente cun bo boilerplate, e engadir manualmente non só novos controladores senón tamén servizos fai que enfermas.
Ou quere crear un software grande e escalable que sexa sinxelo de xestionar. Ou quizais simplemente queres traballar dun xeito máis eficiente e cómodo.
Independentemente de cal sexa certo na túa circunstancia, Nest.js pode ser a solución perfecta para as túas necesidades.
Esta publicación proporcionará información sobre NestJS e experiencia práctica.
Que é NestJS?
NestJS é un framework Node progresivo que é de código aberto, expandible e adaptable .js marco para crear sistemas de backend atractivos e desafiantes. Agora é o nodo coa taxa de crecemento máis rápida.
Framework TypeScript para js. NestJS úsase para crear aplicacións escalables, probables e pouco conectadas.
Engade escalabilidade a Node. Os servidores Js foron levados a un nivel totalmente novo. PostgreSQL, MongoDB e MySQL están entre as bases de datos compatibles.
NestJS é extensible porque se pode usar con outras bibliotecas; flexible debido ao seu ecosistema totalmente adaptable. E progresivo xa que admite funcións de JavaScript e principios de deseño.
Está influenciado principalmente por Angular, React e Vue e inclúe inxección de dependencias integrada.
características
- É sinxelo de usar, aprender e dominar.
- É gratuíto e open-source (licenza MIT)
- Potente interface de liña de comandos (CLI) para aumentar a produtividade e a simplicidade do desenvolvemento
- Programas de proba unitaria que son sinxelos de usar
- Utilízase TypeScript, unha linguaxe con texto moi preciso que é un superconxunto de JavaScript.
- Desenvolvemento e mantemento dunha base de código activa.
- Compatibilidade con centos de módulos específicos de nidos que facilitan a interface con tecnoloxías e ideas populares como TypeORM, Mongoose, GraphQL, rexistro, validación, caché, WebSockets e moito máis.
Cales son os bloques de construción de NestJS?
Os compoñentes de construción das aplicacións Nest móstranse a continuación; hai outros, pero estes tres son os máis significativos. Botámoslles unha ollada rapidamente.
1. Controladores
Os controladores son os encargados de procesar as solicitudes entrantes e responder aos clientes. Recibe solicitudes HTTP particulares e o sistema de enrutamento determina que controlador recibe que solicitude.
Despois elabora unha resposta adecuada para enviar. Coa axuda de clases e decoradores, constrúese un colector sinxelo e cada controlador ten o seu propio conxunto de rutas para realizar varias tarefas.
2. Provedores
Os provedores son unha idea clave en Nest. Moitas das clases principais de Nest (servizos, repositorios, fábricas, axudantes, etc.) pódense xestionar como provedores.
A noción básica dun provedor é que se pode inxectar como unha dependencia; isto implica que os obxectos poden formar varias asociacións entre si e que o papel de "conectar" as instancias dos obxectos pódese subcontratar principalmente ao sistema de execución de Nest.
3. Módulos
Un módulo é unha clase co decorador @Module() que organiza os compoñentes da estrutura da aplicación. Cada aplicación ten un módulo raíz que se utiliza para construír o gráfico da aplicación, que resolve aínda máis as dependencias e interaccións entre o provedor e o módulo.
Este decorador dá metadatos a Nest.js para identificar que compoñentes, controladores ou outros recursos se utilizarán no código da aplicación e combinalos nun único conxunto.
Cada módulo ten unha colección de capacidades que están conectadas dalgún xeito.
Comezando con NestJS
1. instalación
Imos instalar NestJS e facer un proxecto con el seguindo estes pasos:
Como resultado disto crearase a seguinte estrutura de directorios:
2. Controladores
Os bloques de construción do Nest son controladores. Estes son os lugares onde se tratarán as solicitudes de entrada. Podes especificar a ruta da ruta usando modificadores do método HTTP (Obter, Publicar, Poner, Eliminar, etc.) decoradores, como se ve no código a continuación.
Nestjs emprega o enfoque do decorador e desenvólvese principalmente en Typescript, aínda que tamén admite JavaScript. Tamén pode usar un validador de clases para validar o corpo da solicitude.
Só vou facer unha instancia do servidor Nestjs e engadir ValidationPipe globalmente. As canalizacións son só métodos que se executan antes que os controladores. Os tubos tamén se poden aplicar a nivel de método/argumento usando o decorador @UsePipes.
3. Provedores
Os provedores son outro compoñente crítico de Nestjs. De lonxe, estaba almacenando datos nunha variable temporal. É por iso que unha tarefa tan sinxela pódese realizar usando controladores do controlador.
Non obstante, para unha lóxica máis grande e complicada, a separación e a reutilización do código serían difíciles. É aquí cando entran os provedores. Podes declarar/crear un provedor ademais dunha clase usando o decorador @Injectable. Despois, usando provedores, podes facer a inxección de dependencias, o rexistro e outras tarefas.
4. Módulos
Os módulos Nestjs non son globais; en cambio, teñen profundidade.
Non obstante, tamén se pode compartir con calquera outro módulo. Aínda que, como Angular, ofrece módulos globais, é máis recomendable manter os servizos/controladores no módulo onde se usan máis habitualmente en Nestjs.
O NestCLI úsase para producir módulos a maior parte do tempo, e os provedores/controladores xerados no contexto dese módulo son engadidos automaticamente pola CLI. Estes son coñecidos como módulos de funcións.
5. Filtros de excepción
Os filtros de excepción son controladores de erros que se invocan cando un controlador lanza unha excepción. Xestiona automaticamente o problema e envía unha mensaxe de erro adecuada e fácil de usar.
O paquete @nestjs/common proporciona moitas excepcións HttpException herdadas, incluíndo NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException e moitos outros. Incluso podes deseñar o teu propio ExceptionFilter.
6. Middleware
Unha función que se invoca antes do manejador de rutas chámase middleware. Os obxectos de solicitude e resposta, así como a función de middleware next() no ciclo solicitude-resposta da aplicación, son accesibles para as funcións de middleware.
Unha variable chamada next úsase normalmente para identificar a seguinte función de middleware. O middleware personalizado Nest pódese implementar nun método ou nunha clase usando o decorador @Injectable().
7. Gardas
Os gardas só son responsables dunha cousa. É a súa responsabilidade avaliar se unha solicitude será procesada ou non polo controlador en función de circunstancias específicas (específicamente, lóxica definida polo usuario).
É útil para a autenticación/autorización e é o método recomendado en Nestjs.
Aínda que a autenticación/permisos, etc., pódense facer usando middleware, non se fai en servidores HTTP ou express, xa que non teñen un contexto forte relacionado e non teñen motivos para saber que método se utilizará para procesar a solicitude.
vantaxes
- O marco depende en gran medida das anotacións, que se usan para producir calquera cousa, desde puntos finais ata documentación de Swagger. Os puntos finais son básicos e ordenados, e as anotacións facilitan o desenvolvemento en xeral.
- É sinxelo externalizar módulos de propósito xeral e reutilizar código en moitos proxectos xa que Nest.js é un marco baseado en módulos.
- A estrutura do cartafol de Nest.js está influenciada significativamente por Angular. Ao deseñar un servizo Nest, isto permite un tempo de inactividade mínimo.
- Os compoñentes teñen os seus propios directorios, coa raíz que contén o módulo da aplicación e o ficheiro principal. Debido á sinxeleza da estrutura, pódese prestar máis atención ao deseño dos extremos e aos seus clientes que á estrutura da aplicación.
- Nest, como Angular, ofrece unha boa ferramenta de liña de comandos, Nestjs/cli, que está dispoñible a través do Xestor de paquetes de Node.
Desvantaxes
- Nest ten unha vantaxe en canto ao uso de TypeScript e á integración de Angular, pero carece do apoio financeiro dunha enorme corporación.
- A falta de documentación supón a maior ameaza para os usuarios de Nest. Aínda que o marco ten excelentes interaccións con outros marcos, a documentación é escasa e non aborda ningunha dificultade potencial.
- Nest ten unha vantaxe en canto ao uso de TypeScript e Angular.
Conclusión
NestJS ofrece aos desenvolvedores unha gran vantaxe. Para comezar o desenvolvemento, todo o que tes que facer é crear unha nova aplicación e estás ben para ir. Este marco proporciona un impulso significativo de inmediato, ao tempo que che axuda a realizar etapas adicionais ao establecer unha arquitectura de aplicacións adecuada.
Fai uso de métodos e tecnoloxía de punta para producir aplicacións que sexan manexables e duradeiros. Pódese usar para conectarse a GraphQL, WebSockets e construír microservizos.
Deixe unha resposta