Em 2021, JavaScript era a linguagem de programação mais usada.
O apelo desta tecnologia é inegável, como visto pelo grande número de frameworks que permitem a programação JavaScript.
Existem Angular, React e Vue no frontend, bem como Express e Next no backend, para citar alguns.
Com tantos frameworks maravilhosos para programação de back-end em JavaScript acessível, você pode estar pensando por que eu procuraria algo diferente em vez de simplesmente usar Express ou Next.
Talvez você precise iniciar o processo de desenvolvimento rapidamente com um clichê decente e adicionar manualmente não apenas novos controladores, mas também serviços o deixe doente.
Ou você deseja criar um software grande e escalável que seja simples de gerenciar. Ou talvez você simplesmente queira trabalhar de maneira mais eficiente e conveniente.
Independentemente do que seja verdade em sua circunstância, o Nest.js pode ser a solução perfeita para suas necessidades.
Esta postagem fornecerá informações sobre o NestJS, bem como experiência prática.
O que é NestJS?
NestJSGenericName é uma estrutura Node progressiva que é de código aberto, expansível e adaptável .js framework para construir, engajar e desafiar sistemas de back-end. Agora é o Node com a taxa de crescimento mais rápida.
Estrutura TypeScript para js. NestJS é usado para criar aplicativos que são escaláveis, testáveis e conectados livremente.
Ele adiciona escalabilidade ao Node. Os servidores Js foram levados a um nível totalmente novo. PostgreSQL, MongoDB e MySQL estão entre os bancos de dados suportados.
O NestJS é extensível porque pode ser usado com outras bibliotecas; flexível devido ao seu ecossistema adaptável de pleno direito. E progressivo, pois suporta recursos JavaScript e princípios de design.
É influenciado principalmente por Angular, React e Vue e vem com injeção de dependência integrada.
Funcionalidades
- É simples de usar, aprender e dominar.
- É grátis e de código aberto (licença MIT)
- Poderosa interface de linha de comando (CLI) para maior produtividade e simplicidade de desenvolvimento
- Programas de teste de unidade que são simples de usar
- TypeScript, uma linguagem rigidamente tipada que é um superconjunto de JavaScript, é usada.
- Desenvolvimento e manutenção de uma base de código ativa.
- Suporte para centenas de módulos específicos de aninhamento que simplificam a interface com tecnologias e ideias populares como TypeORM, Mongoose, GraphQL, registro, validação, armazenamento em cache, WebSockets e muito mais.
Quais são os blocos de construção do NestJS?
Os componentes de construção dos aplicativos Nest estão listados abaixo; há outros, mas estes três são os mais significativos. Vamos dar uma olhada neles rapidamente.
1. Controladores
Os controladores são responsáveis por processar as solicitações recebidas e responder aos clientes. Ele recebe solicitações HTTP específicas e o sistema de roteamento determina qual controlador recebe qual solicitação.
Em seguida, elabora uma resposta adequada para enviar. Com a ajuda de classes e decoradores, um coletor simples é construído e cada controlador tem seu próprio conjunto de rotas para realizar várias tarefas.
2. Provedores
Os provedores são uma ideia-chave no Nest. Muitas das classes principais do Nest — serviços, repositórios, fábricas, auxiliares e assim por diante — podem ser tratadas como provedores.
A noção básica de um provedor é que ele pode ser injetado como uma dependência; isso implica que os objetos podem formar várias associações uns com os outros, e a função de “ligar” instâncias de objetos pode ser terceirizada principalmente para o sistema de tempo de execução Nest.
3 Módulos
Um módulo é uma classe com o decorador @Module() que organiza os componentes da estrutura do aplicativo. Cada aplicativo tem um módulo raiz que é utilizado para construir o gráfico do aplicativo, que resolve ainda mais as dependências e interações entre o provedor e o módulo.
Esse decorador fornece metadados ao Nest.js para identificar quais componentes, controladores ou outros recursos serão utilizados no código do aplicativo e combiná-los em um único conjunto.
Cada módulo tem uma coleção de recursos que estão conectados de alguma forma.
Introdução ao NestJS
1. Instalação
Vamos instalar o NestJS e fazer um projeto com ele seguindo estes passos:
A seguinte estrutura de diretório será criada como resultado disso:
2. Controladores
Os blocos de construção do Nest são controladores. Esses são os locais onde as solicitações de entrada serão tratadas. Você pode especificar o caminho da rota usando os decoradores de modificadores de método HTTP (Get, Post, Put, Delete e assim por diante), conforme visto no código abaixo.
Nestjs emprega a abordagem de decorador e é desenvolvido principalmente em Typescript, embora também suporte JavaScript. Você também pode usar um validador de classe para validar o corpo da solicitação.
Vou apenas criar uma instância do servidor Nestjs e adicionar o ValidationPipe globalmente. Pipes são apenas métodos que executam antes de Controllers. Pipes também podem ser aplicados no nível de método/argumento usando o decorador @UsePipes.
3. Provedores
Os provedores são outro componente crítico do Nestjs. De longe, eu estava armazenando dados em uma variável temporária. É por isso que uma tarefa tão simples pode ser realizada usando manipuladores de controladores.
No entanto, para uma lógica maior e mais complicada, a separação e a reutilização de código seriam difíceis. É quando os fornecedores entram. Você pode declarar/criar um provedor em cima de uma classe usando o decorador @Injectable. Então, usando provedores, você pode fazer injeção de dependência, log e outras tarefas.
4 Módulos
Os módulos Nestjs não são globais; em vez disso, eles têm profundidade.
No entanto, ele também pode ser compartilhado com qualquer outro módulo. Embora ele, como o Angular, ofereça Módulos Globais, é mais aconselhável manter os Serviços/Controladores no módulo onde eles são mais usados no Nestjs.
O NestCLI é usado para produzir módulos na maioria das vezes, e provedores/controladores gerados no contexto desse módulo são adicionados automaticamente pelo CLI. Estes são conhecidos como módulos de recursos.
5. Filtros de exceção
Filtros de exceção são manipuladores de erro que são invocados quando um Controller lança uma exceção. Ele gerencia automaticamente o problema e fornece uma mensagem de erro apropriada e fácil de usar.
Muitas exceções herdadas de HttpException são fornecidas pelo pacote @nestjs/common, incluindo NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException e muitas outras. Você pode até criar seu próprio ExceptionFilter.
6. Middleware
Uma função que é chamada antes do manipulador de rota é chamada de middleware. Os objetos de solicitação e resposta, bem como a função de middleware next() no ciclo de solicitação-resposta do aplicativo, são acessíveis às funções de middleware.
Uma variável chamada next é normalmente usada para identificar a próxima função de middleware. O middleware Nest personalizado pode ser implementado em um método ou classe usando o decorador @Injectable().
7. Guardas
Os guardas são responsáveis apenas por uma coisa. É sua responsabilidade avaliar se uma solicitação será ou não processada pelo controlador com base em circunstâncias específicas (especificamente, lógica definida pelo usuário).
É útil para autenticação/autorização e é o método recomendado no Nestjs.
Embora a autenticação/permissões, etc., possam ser feitas usando middleware, isso não é feito em servidores HTTP expressos ou outros, pois eles não têm um contexto forte relacionado e não têm motivos para saber qual método será usado para processar a solicitação.
Vantagens
- A estrutura depende muito de anotações, que são usadas para produzir qualquer coisa, desde endpoints até documentação do Swagger. Os endpoints são básicos e organizados, e as anotações facilitam o desenvolvimento em geral.
- É simples externalizar módulos de uso geral e reutilizar código em muitos projetos, pois Nest.js é uma estrutura baseada em módulo.
- A estrutura de pastas do Nest.js é significativamente influenciada pelo Angular. Ao projetar um serviço Nest, isso permite um tempo de inatividade mínimo.
- Os componentes têm seus próprios diretórios, com a raiz contendo o módulo do aplicativo e o arquivo principal. Devido à simplicidade da estrutura, mais atenção pode ser dada ao design dos terminais e seus clientes, em vez da estrutura do aplicativo.
- Nest, como Angular, oferece uma boa ferramenta de linha de comando, Nestjs/cli, que está disponível através do Node Package Manager.
Desvantagens
- O Nest tem uma vantagem em termos de uso de TypeScript e integração Angular, mas não tem o suporte financeiro de uma grande corporação.
- A falta de documentação representa a maior ameaça para os usuários do Nest. Embora o framework tenha excelentes interações com outros frameworks, a documentação é escassa e não aborda quaisquer dificuldades potenciais.
- Nest tem uma vantagem em termos de uso de TypeScript e Angular.
Conclusão
O NestJS oferece aos desenvolvedores uma grande vantagem. Para iniciar o desenvolvimento, tudo que você precisa fazer é criar um novo aplicativo e você está pronto para ir. Essa estrutura fornece um impulso significativo imediatamente, além de ajudá-lo a realizar etapas adicionais, estabelecendo uma arquitetura de aplicativo adequada.
Utiliza métodos e tecnologia de ponta para produzir aplicativos gerenciáveis e duradouros. Ele pode ser usado para se conectar ao GraphQL, WebSockets e construir microsserviços.
Deixe um comentário