You are on page 1of 15
Nest js - Framework que facilita a criagdo de aplicagoes em Node.js ou bun ou etc. Torna mais eficiente, escalavel um projeto node usando TS. Combina poo, progrmagao funcional, programagao reativ afuncional e design pattens servidor http do nest é o express, mas pode usar o fastify Usado para criar apis, micro-servigo, aplicagao web nestjs facilita mt a criagdo e manuntengao Arquitetura cliente servidor: Igual numa padaria que é o servidor que provém algo que o cliente pede inclusive varios ao mesmo tempo. sevidor(um pc) esté provendo um servigo e outros pes que estéo conectados em rede nesse computador, tablet qlq os que é capaz de solictart(provavelmente pela internet) eles consegue fzr solicitagdes para esse servido através de um navegador, aplicativo, sofwtare, terminal etc. Basicamente todo site tem isso Tudo que faz solicatagao ao servidor: client (geralmente onde fica o frontend) server - distribui um servigo onde fic ao backend {9 rorsme mnoiopaae niga EP mem © ir teeta Cliente-servidor @ ae ee ert eet eae pe — web server: Aplicagao que recebe request, procura quem vai executar essa solicitagao e retoma os dados. E um software que fornece recursos da web para clientes que solictam paginas da web através do protocolo http, um servidor web serve paginas. Eles sao responsaveis por transmitir os arquivos que compoem um site, ex: html. imagens, videos etc. Basicamente uma aplicagao que vai responder, acionar uma linguagem que executa algo retorna um texto, normalmente é um servidor web. Exemplo: Apache e Node js pode ser um servidor se criamos manualmente um. Todos temos ip. O servidor tem um nome também, ou dominio que através do dns encontrado seu ip e podemos interagir com ele. ee Nosso computador vai ser o servidor e cliente ao mesmo tempo, ¢ o servidor web vamos, fazer em Node js com nest eu acho. Acessaremos nosso pc pelo ip da rede local, 127 0 famoso localhost que tem como padrao a porta 80 Ciclo do request: © navegador procura um pc através de um IP(a gente digita google.com por exemplo, ai 0 dns converte), dai ele vai achar um computador(pode ser até 0 nosos préprio pc localhost), depois disso 0 computador vai ver se tem alguma aplicagao rodando na porta padréo dele 80, ou https 443. Nesse curso ele vai encontrar uma aplicagao rodando, o préprio node.js s6 que 0 Node,js n sabe og faz com a solicitagao ao menos que a gente tenha configurado ele para fazer algo com ela. Usaremos 0 Nestjs, 0 node vai encaminhar essa solicitagdo para ele, e vamos tratar essa request com ele. E depois que chega no nest? Os requests so recebidos por uma controller, mas antes do controllers podem haver middlewares para tratar esse request NestJS Client/Server ® ee ecm REQUEST Response one ea ® »—®@ Pit Depois que o nest ou sei la express processa a solicitagao ele retorna a resposta, na maioria das vezes como json par ao navegador, mas poderia ser em video, xml ete. Nest CLI Pr Aquo esta as duas maneiras, a primeira maneira ja cria toda a estrutura basica do nest em qualquer pasta do pe, visto que instalamos globalmente no pc. A segunda é se vc n quer ter na instalado No geral é isso que fazem com o new, pegam do repositorio oficial do nest clona o repositorio naql pasta ¢ instala as dependencias. Sobre estrutura de pastas Esse ensina a ferramenta do nest o padrao da nossa aplicagao nest Exemplo Onde esta realmente os arquivos da nossa aplicagao nest Arquivo main E criado a primeira instancia, tipo um app do express e é definido a rota. A instancia é criada chamando outros arquivos Esse arquvio chama um controller e um service Controller Ele chama um service, importado la encima o@Get provavelmente é para informar a rota E tom o spec CTT enc ceaesseCed eases) a return "Hell © jest que usa isso ai, todos com a extensdo spec é arquivo de teste. Veja que o nome inicial é 0 mesmo do controller, signifca que ele ta testando o arquvio do controller. Quando 0 NestiS recebe um cree ced eee aca a Pore ets eee atesrty Validagao: Verificar s eo usuario tem permissao suficiente para fazer o que quer, verificar se ele enviou todos os dados necessérios para a request, verificar se té autenticado e 6 um adm por exemplo. Modificagao: Tudo que modificamos no request, por exemplo, se vir como string, mas precisamos que seja um nimero certo campo para fazer algum tipo de busca, modificamos © request. Um exemplo perfeito 6 quando alteramos o request para ele carregar sei Id 0 id do usuario com ele, para usarmos em outras parte do cédigo. Tbm poderiamos colocar um token nele etc, qlq modificagao. de Vida do PD Ee) 2 L« lo de Vida do Pe Em geral o ciclo de vida completo de uma solicitagiio em ordem : mre handler) Conceitos de nest js bootstrap - Nao se relaciona com o bootstrap do front-end, é outro conceito. Bootstrap é algo que te ajuda a iniciar(o nome vem da pecinha que ajuda a calgar a bota, igual aquela bota da shoope). E basicamente um ponta pé inicial para ajudar a criar as coisas Modul: Divisdo de segdes da nossa aplicagao Exemplo: Modulo para usuarios, produtos ou até mesmo de fotos onde teré as regras para fazer um upload, como por exemplo para onde vamos salvar a foto. E tipo as pastas de artista que tem rotas, controllers, services etc. Se importamos outro modulo no app.module, tanto os controllers quanto os servigos vao ter acesso aos controllers, servigos do modulo importado. Esse modulo pode ser nosso, ou algum baixado de terceiros. Exemplo: Envio de email com node, nao é padrao do nest,js Resumindo: Modulo agrupa recursos(controllers, servigos) Podemos importar outro modulo dentro de outra para fazer algo, e podemos exportar coisas do nosso modulo. E bem oq ja vimos antes, por exemplo o servigo de artista usar 0 repositorio de imagens que é do outro modulo, Paty Esa é a primeira fungao a ser executada, ela fica na main. E nela onde teremos as configuragdes da nossa aplicagao, por exemplo pode ser o server.ts no express, é 0 arquivo de entrada sabe? Esse app 6 uma aplicagao express por padrao. o NestFactory é uam classe, e 0 “Factory” vem do pattems que diz que temos uma fungao que é responsavel pro fabricar alguma coisa, no caso uma aplicagao(instancia), dai passamos a classe que define o modulo raiz da aplicagao, que é AppModule Basicamente estamos criando uma instancia do nests igual seri aum app no express. Agora podemos lidar com requisigoes. a gente coloca cors, documentagao aq tbm use 0 entryFile se tiver um arquivo de entrada com nome diferente no nest-cli Decorators Essa classe vazia é preenchida pelo @Module ele sabe o que colocar dentro da classe, de acordo com as configuragées informadas a ele. Decorator é uma fungéo, nesse module ele recebe um objeto como parametro, que tem varias propriedades, como import, controllers, © providers que é um array com uma classe de servigo. Assim a fungo Module(decorator) preenche a classe n sei como Sobre controller E bem explicativo, esse controller & para rotas de usuarios, e 0s verbos hitp responderam a mesma rota. Servigos: Temos o decorator injectable, og significa que a classe ¢ injetada. podemos usar essa classe em outra classe, por exemplo o controller, que é a classe que usa o servigo API arquitetura rest uma a rota para saber oq deve ser feito no app, apis servidas principalmente na web, ent o rest precisa de recursos que 0 protocolo http fornece, como a url e metodos http O nome do recurso que ele quer vem na uri/url A execugao(agées: ler, atualizar, criar, deletar) vem do crud que vem dos verbos http. O rest tem um padrao pro crud

You might also like