I 2021 var JavaScript det mest brukte programmeringsspråket.
Appellen til denne teknologien er ubestridelig, sett av det store antallet rammeverk som muliggjør JavaScript-programmering.
Det er Angular, React og Vue på frontend, samt Express og Next på backend, for å nevne noen.
Med så mange fantastiske rammer for backend-programmering i JavaScript tilgjengelig, tenker du kanskje hvorfor jeg ville søke etter noe annet i stedet for bare å bruke Express eller Next.
Kanskje du trenger å sette i gang utviklingsprosessen raskt med en anstendig boilerplate, og manuelt legge til ikke bare nye kontrollere, men også tjenester gjør deg syk.
Eller du vil lage stor, skalerbar programvare som er enkel å administrere. Eller kanskje du rett og slett ønsker å jobbe på en mer effektiv og praktisk måte.
Uansett hva som er sant i din situasjon, kan Nest.js være den perfekte løsningen for dine behov.
Dette innlegget vil gi NestJS-innsikt så vel som praktisk erfaring.
Hva er NestJS?
NestJS er et progressivt Node-rammeverk som er åpen kildekode, utvidbart og tilpasningsdyktig .Js rammeverk for å bygge, engasjere og utfordre backend-systemer. Det er nå noden med den raskeste vekstraten.
TypeScript-rammeverk for js. NestJS brukes til å lage applikasjoner som er skalerbare, testbare og løst tilkoblet.
Det legger til skalerbarhet til Node. Js-servere har blitt tatt til et helt nytt nivå. PostgreSQL, MongoDB og MySQL er blant databasene som støttes.
NestJS er utvidbar fordi den kan brukes med andre biblioteker; fleksibel på grunn av dets tilpasningsdyktige fullverdige økosystem. Og progressiv siden den støtter JavaScript-funksjoner og designprinsipper.
Den er først og fremst påvirket av Angular, React og Vue og kommer med innebygd avhengighetsinjeksjon.
Egenskaper
- Det er enkelt å bruke, lære og mestre.
- Det er gratis og åpen kildekode (MIT-lisens)
- Kraftig kommandolinjegrensesnitt (CLI) for økt produktivitet og enkel utvikling
- Enhetstestingsprogrammer som er enkle å bruke
- TypeScript, et tett skrevet språk som er et supersett av JavaScript, brukes.
- Utvikling og vedlikehold av en aktiv kodebase.
- Støtte for hundrevis av reirspesifikke moduler som gjør det enkelt å grensesnitt med populære teknologier og ideer som TypeORM, Mongoose, GraphQL, logging, validering, caching, WebSockets og mer.
Hva er byggesteinene til NestJS?
Bygningskomponentene til Nest-applikasjoner er oppført nedenfor; det er andre, men disse tre er de mest betydningsfulle. La oss ta en titt på dem raskt.
1. Controllers
Kontrollører har ansvaret for å behandle innkommende forespørsler og svare på klienter. Den mottar bestemte HTTP-forespørsler, og rutingsystemet bestemmer hvilken kontroller som mottar hvilken forespørsel.
Deretter utarbeider den et passende svar å sende ut. Ved hjelp av klasser og dekoratører bygges en enkel samler og hver kontroller har sitt eget sett med ruter for å utføre ulike oppgaver.
2. Leverandører
Leverandører er en nøkkelidé i Nest. Mange av kjernene Nest-klassene – tjenester, depoter, fabrikker, hjelpere og så videre – kan håndteres som leverandører.
En leverandørs grunnleggende oppfatning er at den kan injiseres som en avhengighet; dette innebærer at objekter kan danne ulike assosiasjoner med hverandre, og rollen som å "koble opp" forekomster av objekter kan hovedsakelig outsources til Nest-kjøretidssystemet.
3. Moduler
En modul er en klasse med @Module()-dekoratoren som organiserer komponentene i applikasjonens struktur. Hver applikasjon har en rotmodul som brukes til å konstruere applikasjonsgrafen, som videre løser avhengighetene og interaksjonene mellom leverandøren og modulen.
Denne dekoratoren gir metadata til Nest.js for å identifisere hvilke komponenter, kontrollere eller andre ressurser som vil bli brukt i applikasjonskoden og kombinere dem til et enkelt sett.
Hver modul har en samling funksjoner som er koblet sammen på en eller annen måte.
Komme i gang med NestJS
1. Installasjon
La oss installere NestJS og lage et prosjekt med det ved å følge disse trinnene:
Følgende katalogstruktur vil bli opprettet som et resultat av dette:
2. Controllers
Nestens byggeklosser er kontrollere. Dette er stedene der innkommende forespørsler vil bli behandlet. Du kan spesifisere rutebanen ved å bruke HTTP-metodemodifikatorer (Get, Post, Put, Delete, og så videre) dekoratorer, som vist i koden nedenfor.
Nestjs bruker dekoratortilnærmingen og er stort sett utviklet i Typescript, selv om den også støtter JavaScript. Du kan også bruke en klassevalidator for å validere forespørselskroppen.
Jeg skal bare lage en Nestjs-serverforekomst og legge til ValidationPipe globalt. Pipes er bare metoder som kjøres før kontroller. Rør kan også brukes på metode-/argumentnivå ved å bruke @UsePipes-dekoratoren.
3. Leverandører
Leverandører er en annen kritisk komponent i Nestjs. På langt nær lagret jeg data i en midlertidig variabel. Det er grunnen til at en så enkel oppgave kan utføres ved å bruke Controller-behandlere.
For større, mer komplisert logikk vil imidlertid kodeseparasjon og gjenbruk være vanskelig. Dette er når leverandører kommer inn. Du kan deklarere/opprette en leverandør på toppen av en klasse ved å bruke @Injectable-dekoratøren. Deretter, ved å bruke leverandører, kan du gjøre avhengighetsinjeksjon, logging og andre oppgaver.
4. Moduler
Nestjs-moduler er ikke globale; i stedet har de dybde.
Den kan imidlertid også deles med andre moduler. Selv om den, som Angular, tilbyr globale moduler, er det mer tilrådelig å beholde tjenester/kontrollere i modulen der de er mest brukt i Nestjs.
NestCLI brukes til å produsere moduler mesteparten av tiden, og leverandører/kontrollere generert i den modulens kontekst blir automatisk lagt til av CLI. Disse er kjent som funksjonsmoduler.
5. Unntaksfiltre
Unntaksfiltre er feilbehandlere som påkalles når en kontroller kaster et unntak. Den håndterer automatisk problemet og leverer en passende, brukervennlig feilmelding.
Mange HttpException arvede unntak leveres av pakken @nestjs/common, inkludert NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException og mange andre. Du kan til og med designe ditt eget ExceptionFilter.
6. Mellomvare
En funksjon som påkalles før rutebehandleren kalles mellomvare. Forespørsels- og svarobjektene, så vel som den neste() mellomvarefunksjonen i applikasjonens forespørsel-svar-syklus, er tilgjengelige for mellomvarefunksjoner.
En variabel kalt neste brukes vanligvis til å identifisere neste mellomvarefunksjon. Custom Nest-mellomvare kan implementeres i en metode eller en klasse ved å bruke @Injectable()-dekoratoren.
7. Vakter
Vakter er bare ansvarlige for én ting. Det er deres ansvar å vurdere om en forespørsel vil bli behandlet av behandlingsansvarlig eller ikke basert på spesifikke omstendigheter (spesifikt brukerdefinert logikk).
Det er nyttig for autentisering/autorisering og er den anbefalte metoden i Nestjs.
Selv om autentisering/tillatelser osv. kan gjøres ved hjelp av mellomvare, gjøres det ikke i ekspress- eller andre HTTP-servere siden de ikke har en relatert sterk kontekst og har ingen grunn til å vite hvilken metode som vil bli brukt for å behandle forespørselen.
Fordeler
- Rammeverket er sterkt avhengig av merknader, som brukes til å produsere alt fra endepunkter til Swagger-dokumentasjon. Endepunktene er enkle og ryddige, og merknadene gjør utviklingen lettere generelt.
- Det er enkelt å eksternalisere generelle moduler og gjenbruke kode i mange prosjekter siden Nest.js er et modulbasert rammeverk.
- Nest.js sin mappestruktur er betydelig påvirket av Angular. Når du designer en Nest-tjeneste, gir dette minimal nedetid.
- Komponenter har sine egne kataloger, med roten som inneholder applikasjonsmodulen og hovedfilen. På grunn av strukturens enkelhet kan mer oppmerksomhet rettes mot utformingen av endepunkter og deres kunder i stedet for strukturen til applikasjonen.
- Nest, som Angular, tilbyr et fint kommandolinjeverktøy, Nestjs/cli, som er tilgjengelig gjennom Node Package Manager.
Ulemper
- Nest har en fordel når det gjelder TypeScript-bruk og Angular-integrasjon, men den mangler økonomisk støtte fra et stort selskap.
- Mangelen på dokumentasjon utgjør den største trusselen for Nest-brukere. Selv om rammeverket har utmerket interaksjon med andre rammeverk, er dokumentasjonen sparsom og adresserer ingen potensielle vanskeligheter.
- Nest har en fordel når det gjelder TypeScript-bruk og Angular.
konklusjonen
NestJS gir utviklere et stort ben opp. For å begynne utviklingen er alt du trenger å gjøre lag en ny app og du er klar til å gå. Dette rammeverket gir et betydelig løft med en gang, samtidig som det hjelper deg med å ta flere stadier ved å etablere en passende apparkitektur.
Den bruker banebrytende metoder og teknologi for å produsere applikasjoner som er både håndterbare og langvarige. Den kan brukes til å koble til GraphQL, WebSockets og konstruere mikrotjenester.
Legg igjen en kommentar