Introdução ao NestJS [+6 Learning Resources]

O NestJS é uma estrutura Node.js progressiva para criar aplicativos escalonáveis, eficientes e confiáveis ​​do lado do servidor.

NestJS foi construído para eliminar bases de código desorganizadas. Sua estrutura modular facilita a organização do código em diferentes módulos.

NestJS é construído em Typescript e usa ExpressJS sob o capô. O NestJS é amado por desenvolvedores que desejam aproveitar o poder de verificação de tipo do TypeScript. O NestJS combina diferentes aspectos da Programação Funcional Reativa (FRP), Programação Orientada a Objetos (OOP) e Programação Funcional (FP).

Por que NestJS?

O NestJS é amigável para iniciantes, pois possui uma boa estrutura e ferramentas de interface de linha de comando (CLI) fáceis de usar. Os desenvolvedores podem criar um novo recurso com um único comando enquanto usam essa estrutura Node.js.

O NestJS fornece o módulo, o serviço, o controlador e a pilha de teste para você começar. Você também pode contar com muitos clichês e modelos disponíveis para facilitar sua jornada de desenvolvimento.

A curva de aprendizado do NestJS será fácil para aqueles familiarizados com loops, sintaxe e condições em JavaScript e Angular.

Características do NestJS

Construído em Typescript

NestJS é construído em Typescript, um sobrescrito de JavaScript. O Typescript fornece uma melhor experiência de desenvolvimento, pois você não precisa verificar manualmente os erros sempre que alterar algo no código. O Typescript basicamente oferece todos os recursos do JavaScript, mas também vem com algumas funcionalidades adicionais.

Contêiner de Injeção de Dependência

A injeção de dependência separa a inicialização dos objetos que a classe usa da própria classe. Nesse caso, a classe é chamada de ‘cliente’ enquanto as dependências de classe são conhecidas como ‘serviços’. Essa DI integrada no NestJS torna os aplicativos mais eficientes e modulares.

Poderosa interface de linha de comando (CLI)

Você pode inicializar, desenvolver e manter todos os seus aplicativos NestJS usando o NestCLI. Há muitas coisas que você pode fazer usando o Nest CLI, como;

  • Montando o projeto
  • Servindo o projeto no modo de desenvolvimento
  • Construir e agrupar o aplicativo para distribuição de produção
  O que é o foco do botão Voltar?

Modularização

Todo aplicativo NestJS possui pelo menos um módulo. O módulo ‘raiz’ é o mais básico. Em um aplicativo NestJS típico, todas as partes lógicas do aplicativo residirão no mesmo limite de domínio (módulo). Essa configuração facilita a organização de componentes em que um aplicativo terá vários módulos com um conjunto de recursos estreitamente relacionado.

teste de unidade

O teste automatizado vem com muitos benefícios. No entanto, o processo de definição de tais testes pode ser muito mais envolvente. O NestJS possui vários recursos para ajudar as equipes a criar e automatizar testes. O bom do NestJS é que ele pode ser usado com várias ferramentas de teste. O sistema de injeção de dependência do Nest é disponibilizado durante o teste para simular facilmente os componentes.

Banco de dados agonístico

Você pode integrar-se facilmente a qualquer banco de dados SQL ou NoSQL com base em suas necessidades e preferências ao trabalhar com o NestJS. Conectar o NestJS a um banco de dados é muito simples, pois você só precisa carregar um driver Node.js apropriado.

Suporta várias bibliotecas

O NestJS é compatível com várias ferramentas, o que agiliza o desenvolvimento de aplicativos. Essa estrutura suporta registro, validação, cache, WebSockets, TypeORM, Mongoose e GraphQL sem configuração extra.

Arquitetura e fluxo de trabalho do NestJS

O NestJS possui uma arquitetura de 3 camadas composta por controladores, provedores e módulos. Os desenvolvedores podem, assim, criar um código limpo que não se sobreponha.

Fonte da imagem: betterprogramming

controladores

Os controladores no NestJS servem como uma ponte entre as solicitações e as respostas do cliente. O mecanismo de roteamento sempre direcionará a solicitação para um controlador apropriado sempre que uma solicitação HTTP for feita. A estrutura usa decoradores e classes para criar controladores. Cada método de classe é mapeado para rotas para receber uma solicitação específica.

Provedores

Os provedores podem ser descritos como os fundamentos do NestJS. Os provedores são injetados como dependências e criam relacionamentos entre vários objetos. As classes no NestJS, como auxiliares, serviços ou repositórios, podem ser tratadas como provedores assim que o decorador `@Injectable()` for adicionado. Esses provedores também podem ser injetados em uma classe por meio do construtor e o NestJS resolverá as dependências.

  Como obter um alerta de parada de ônibus ou trem no seu iPhone

Módulos

Um módulo no NestJS reúne um conjunto de recursos estreitamente relacionado. Cada aplicativo NestJS tem um módulo raiz usado como ponto de entrada. O uso de vários módulos é altamente recomendável se você deseja ter um código organizado e de fácil leitura. O decorador `@Module()` do Nest define um módulo e também fornece informações como dependências, controladores e provedores para acompanhar esse módulo.

Introdução ao NestJS

Certifique-se de que Node.js e npm estejam instalados. Você precisa de um ambiente de tempo de execução e o Node.js é perfeito para essa configuração. Você precisa da versão >= 12, exceto v13. Você pode verificar se possui Node.js e npm instalados através destes comandos;

node -v
npm -v

Se ambos estiverem instalados, você obterá uma saída próxima a esta

Se você não os possui, instale-os através da página oficial. Felizmente, Node.js e npm são instalados juntos.

  • Instale o Nest CLI. Use os seguintes comandos para definir a CLI e o projeto;
npm i -g @nestjs/cli
nest new project-name

Escolhemos o nome do projeto para ser mynestapp para fins de demonstração. O NestJS oferece a você a chance de trabalhar com Typescript ou Vanilla JavaScript. Selecione o que mais lhe convier e aperte enter. Após o scaffold do aplicativo, a estrutura do arquivo será configurada e a pasta ‘src’ virá com vários arquivos principais, conforme mostrado nesta captura de tela

  • Execute o aplicativo/seu primeiro hello world

Quando a instalação estiver concluída, execute estes comandos para executar o servidor de desenvolvimento

cd mynestapp
npm run start

Digite http://localhost:3000/ no seu navegador e seu primeiro “Hello World” no NestJs deve ser exibido

NestJS: Vantagens

  • Fácil de aprender. É fácil dominar o NestJS, especialmente se você for do Angular ou tiver um conhecimento geral de JavaScript. A documentação detalhada também facilita o domínio do trabalho com essa poderosa estrutura.
  • Flexível. Você pode construir muitas coisas usando o NestJS. Você pode criar aplicativos MVC, aplicativos GraphQL, APIs RESTful e web sockets usando esta estrutura Node.js.
  • Vem com milhares de módulos. Os módulos com suporte da comunidade facilitam para os desenvolvedores estruturar diferentes recursos durante a criação de aplicativos do lado do servidor.
  • Desenvolvimento rápido e boa arquitetura. Você não precisa criar tudo do zero ao trabalhar com o NestJS. No entanto, o mesmo framework possui uma arquitetura sólida para facilitar o entendimento do seu código.
  Como mover o botão para baixo no aplicativo Reddit

NestJS: Desvantagens

  • Não é favorável para aqueles com backgrounds TypeScript e Angular. O NestJS pega muito emprestado da arquitetura Angular, e aqueles sem esse conhecimento podem levar algum tempo para entender a sintaxe e a estrutura.
  • Falta em algumas áreas. O NestJS ainda é jovem e pode não competir favoravelmente com alguns frameworks estabelecidos baseados em Python e GO.

Empresas que usam NestJS

#1. Adidas

A Adidas, fabricante e designer de calçados, está entre as empresas que usam o NestJS. Os incríveis recursos do NestJS devem ter atraído esse gigante do calçado para usá-lo em seu back-end.

#2. Capgemini

A Capgemini é uma multinacional francesa que oferece consultoria, tecnologia, terceirização e serviços profissionais. Esta empresa usa o NestJS em sua pilha de tecnologia.

#3. roche

A Roche é uma empresa multinacional de saúde que possui duas divisões; medicamentos e diagnósticos. A Roche usa o NestJS como uma das pilhas de tecnologia em seu site principal.

Recursos de aprendizagem

#1. NestJS Zero a Herói

NestJS Zero to Hero ensina aos desenvolvedores como criar e implantar aplicativos back-end corporativos usando Typescript e Node.js. O curso ensina como criar APIs, Autorização e Autenticação, Unit Testing de aplicações Nest, TypeORM para interação com banco de dados, entre muitas outras coisas.

#2. NestJS: o guia completo do desenvolvedor

Este curso ensina aos desenvolvedores como criar APIs de back-end usando Nest, TypeScript e TypeORM. Este guia completo tem tudo o que você precisa para configurar a codificação, teste e implantação do seu aplicativo NestJS. Você também obterá uma compreensão dos bastidores da estrutura da web NestJS.

#3. Mestre NestJS

O Master NestJS ensina como desenvolver aplicativos Node.js de nível empresarial usando TypeScript. O curso ensina validação e serialização de dados, como funcionam os tokens JWT, como usar NestCLI e abstração de banco de dados moderna, entre muitas outras coisas.

#4. NestJs na prática (com MongoDB)

NestJS na Prática ensina tudo o que você precisa aprender sobre NestJS, desde Módulos, Controladores, GuardsServices, Pipes e Middleware. O curso adota uma abordagem baseada em projeto em que você codifica e hospeda seu código no GitHub com arquivos zip para download para cada seção.

#5. Nest.js: uma estrutura Node.js progressiva

Este livro apresenta aos desenvolvedores o NestJS e como aproveitar o JavaScript e o TypeScript. O livro foi desenvolvido em um formato de instruções para garantir que você possa configurar e executar seu aplicativo NestJS rapidamente.

#6. Nest.js prático: Desenvolva aplicativos web MVC limpos

O livro prático do Nest.js usa uma abordagem baseada em projeto para criar um aplicativo de loja online que utiliza vários recursos do NestJS. O livro inclui discussões curtas, dicas e frases úteis ao criar seu aplicativo NestJS.

Conclusão

Além de ser um poderoso framework Node.js, o NestJS também é um dos frameworks Typescript mais populares para aplicativos do lado do servidor atualmente. O fato de oferecer práticas recomendadas de codificação e uma arquitetura de desenvolvimento padrão fez com que atraísse muitos engenheiros que desejam se concentrar na criação de lógica de negócios ao criar aplicativos.