I 2021 var JavaScript det mest udbredte programmeringssprog.
Tiltrækningen ved denne teknologi er ubestridelig, som det ses af det store antal rammer, der muliggør JavaScript-programmering.
Der er Angular, React og Vue på frontend, samt Express og Next på backend, for at nævne nogle få.
Med så mange vidunderlige rammer til backend-programmering i JavaScript tilgængelige, tænker du måske, hvorfor jeg ville søge efter noget andet i stedet for blot at bruge Express eller Next.
Måske skal du hurtigt sætte gang i udviklingsprocessen med en anstændig kedelplade, og manuelt tilføjelse af nye controllere, men også tjenester gør dig syg.
Eller du vil skabe stor, skalerbar software, der er nem at administrere. Eller måske ønsker du blot at arbejde mere effektivt og bekvemt.
Uanset hvad der er sandt i din situation, kan Nest.js være den perfekte løsning til dine behov.
Dette indlæg vil give NestJS-indsigt såvel som praktisk erfaring.
Hvad er NestJS?
NestJS er en progressiv Node-ramme, der er open source, kan udvides og tilpasses .Js rammer for at bygge, engagere og udfordre backend-systemer. Det er nu den node med den hurtigste vækstrate.
TypeScript-ramme for js. NestJS bruges til at skabe applikationer, der er skalerbare, testbare og løst forbundet.
Det tilføjer skalerbarhed til Node. Js-servere er blevet taget til et helt nyt niveau. PostgreSQL, MongoDB og MySQL er blandt de understøttede databaser.
NestJS kan udvides, fordi det kan bruges med andre biblioteker; fleksibel på grund af dets tilpasningsdygtige fuldgyldige økosystem. Og progressiv, da den understøtter JavaScript-funktioner og designprincipper.
Den er primært påvirket af Angular, React og Vue og kommer med indbygget afhængighedsindsprøjtning.
Funktionalitet
- Det er nemt at bruge, lære og mestre.
- Det er gratis og open source (MIT-licens)
- Kraftig Command Line Interface (CLI) for øget produktivitet og enkel udvikling
- Enhedstestprogrammer, der er nemme at bruge
- TypeScript, et stramt skrevet sprog, der er et supersæt af JavaScript, bruges.
- Udvikling og vedligeholdelse af en aktiv kodebase.
- Understøttelse af hundredvis af rede-specifikke moduler, der gør det nemt at interface med populære teknologier og ideer som TypeORM, Mongoose, GraphQL, logning, validering, caching, WebSockets og mere.
Hvad er byggestenene i NestJS?
Byggekomponenterne i Nest-applikationer er anført nedenfor; der er andre, men disse tre er de mest betydningsfulde. Lad os tage et kig på dem hurtigt.
1. Controllere
Controllere er ansvarlige for at behandle indkommende anmodninger og besvare kunder. Den modtager bestemte HTTP-anmodninger, og routingsystemet bestemmer, hvilken controller der modtager hvilken anmodning.
Derefter udarbejder den et passende svar at sende ud. Ved hjælp af klasser og dekoratører bygges en simpel samler, og hver controller har sit eget sæt ruter til at udføre forskellige opgaver.
2. Udbydere
Udbydere er en nøgleidé i Nest. Mange af de centrale Nest-klasser - tjenester, depoter, fabrikker, hjælpere og så videre - kan håndteres som udbydere.
En udbyders grundlæggende forestilling er, at den kan injiceres som en afhængighed; dette indebærer, at objekter kan danne forskellige associationer med hinanden, og rollen som at "koble op" forekomster af objekter kan hovedsageligt outsources til Nest runtime-systemet.
3. moduler
Et modul er en klasse med @Module() dekoratoren, der organiserer komponenterne i applikationens struktur. Hver applikation har et rodmodul, der bruges til at konstruere applikationsgrafen, som yderligere løser afhængighederne og interaktionerne mellem udbyderen og modulet.
Denne dekorator giver metadata til Nest.js for at identificere, hvilke komponenter, controllere eller andre ressourcer der vil blive brugt i applikationskoden og kombinere dem i et enkelt sæt.
Hvert modul har en samling af muligheder, der er forbundet på en eller anden måde.
Kom godt i gang med NestJS
1. Installation
Lad os installere NestJS og lave et projekt med det ved at følge disse trin:
Følgende mappestruktur vil blive oprettet som et resultat af dette:
2. Controllere
Redens byggeklodser er controllere. Dette er de steder, hvor indgående anmodninger vil blive håndteret. Du kan angive rutestien ved hjælp af HTTP-metodemodifikatorer (Get, Post, Put, Delete og så videre) dekoratorer, som det ses i koden nedenfor.
Nestjs anvender dekorationstilgangen og er for det meste udviklet i Typescript, selvom den også understøtter JavaScript. Du kan også bruge en klassevalidator til at validere anmodningens krop.
Jeg vil bare lave en Nestjs-serverinstans og tilføje ValidationPipe globalt. Pipes er bare metoder, der udføres før controllere. Rør kan også anvendes på metode-/argumentniveau ved hjælp af @UsePipes-dekoratoren.
3. Udbydere
Udbydere er en anden kritisk komponent i Nestjs. Langt, jeg lagrede data i en midlertidig variabel. Det er grunden til, at en så simpel opgave kan udføres ved hjælp af Controller-handlere.
Men for større, mere kompliceret logik ville kodeadskillelse og genbrug være vanskeligt. Det er her, leverandører kommer ind. Du kan erklære/oprette en udbyder oven på en klasse ved at bruge @Injectable dekoratoren. Ved hjælp af udbydere kan du derefter udføre afhængighedsinjektion, logning og andre opgaver.
4. moduler
Nestjs-moduler er ikke globale; i stedet har de dybde.
Det kan dog også deles med andre moduler. Selvom det, ligesom Angular, tilbyder globale moduler, er det mere tilrådeligt at beholde Services/Controllers i det modul, hvor de oftest bruges i Nestjs.
NestCLI'en bruges til at producere moduler det meste af tiden, og udbydere/controllere genereret i det moduls kontekst tilføjes automatisk af CLI'en. Disse er kendt som funktionsmoduler.
5. Undtagelsesfiltre
Undtagelsesfiltre er fejlbehandlere, der påkaldes, når en controller kaster en undtagelse. Det håndterer automatisk problemet og leverer en passende, brugervenlig fejlmeddelelse.
Mange HttpException nedarvede undtagelser leveres af pakken @nestjs/common, inklusive NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException og mange andre. Du kan endda designe dit eget ExceptionFilter.
6. Mellemvare
En funktion, der aktiveres før rutebehandleren, kaldes middleware. Anmodnings- og svarobjekterne samt den næste() middleware-funktion i applikationens anmodning-svar-cyklus er tilgængelige for middleware-funktioner.
En variabel kaldet next bruges typisk til at identificere den næste middleware-funktion. Custom Nest-middleware kan implementeres i en metode eller en klasse ved hjælp af @Injectable()-dekoratoren.
7. Vagter
Vagter er kun ansvarlige for én ting. Det er deres ansvar at vurdere, hvorvidt en anmodning vil blive behandlet af den registeransvarlige baseret på specifikke omstændigheder (specifikt brugerdefineret logik).
Det er nyttigt til godkendelse/godkendelse og er den anbefalede metode i Nestjs.
Selvom godkendelse/tilladelser osv. kan udføres ved hjælp af middleware, udføres det ikke i ekspres- eller andre HTTP-servere, da de ikke har en relateret stærk kontekst og ikke har nogen grund til at vide, hvilken metode der vil blive brugt til at behandle anmodningen.
Fordele
- Rammen er stærkt afhængig af annoteringer, som bruges til at producere alt fra endepunkter til Swagger-dokumentation. Slutpunkterne er grundlæggende og ryddelige, og annoteringerne gør udviklingen lettere generelt.
- Det er nemt at eksternalisere moduler til generelle formål og genbruge kode i mange projekter, da Nest.js er en modulbaseret ramme.
- Nest.js' mappestruktur er væsentligt påvirket af Angular. Når du designer en Nest-tjeneste, giver dette mulighed for minimal nedetid.
- Komponenter har deres egne mapper, hvor roden indeholder applikationsmodulet og hovedfilen. På grund af strukturens enkelhed kan der lægges mere vægt på designet af endpoints og deres kunder frem for strukturen af applikationen.
- Nest tilbyder ligesom Angular et fint kommandolinjeværktøj, Nestjs/cli, som er tilgængeligt gennem Node Package Manager.
Ulemper
- Nest har en fordel med hensyn til TypeScript-brug og Angular-integration, men den mangler økonomisk støtte fra et stort selskab.
- Manglen på dokumentation udgør den største trussel for Nest-brugere. Selvom rammeværket har fremragende interaktioner med andre rammer, er dokumentationen sparsom og adresserer ingen potentielle vanskeligheder.
- Nest har en fordel med hensyn til TypeScript-brug og Angular.
Konklusion
NestJS giver udviklere et kæmpe ben op. For at begynde udviklingen er alt hvad du skal gøre oprette en ny app og du er god til at gå. Denne ramme giver et betydeligt løft med det samme, samtidig med at det hjælper dig med at tage yderligere trin ved at etablere en passende app-arkitektur.
Det gør brug af banebrydende metoder og teknologi til at producere applikationer, der er både håndterbare og langtidsholdbare. Det kan bruges til at oprette forbindelse til GraphQL, WebSockets og konstruere mikrotjenester.
Giv en kommentar