Introduktion til NestJS [+6 Learning Resources]

NestJS er en progressiv Node.js-ramme til opbygning af skalerbare, effektive og pålidelige server-side-applikationer.

NestJS blev bygget til at eliminere uorganiserede kodebaser. Dens modulære struktur gør det nemt at organisere kode i forskellige moduler.

NestJS er bygget på Typescript og bruger ExpressJS under emhætten. NestJS er elsket af udviklere, der ønsker at drage fordel af TypeScripts typekontrolkraft. NestJS kombinerer forskellige aspekter af funktionel reaktiv programmering (FRP), objektorienteret programmering (OOP) og funktionel programmering (FP).

Hvorfor NestJS?

NestJS er begyndervenlig, da den har en god struktur og brugervenlige Command Line Interface (CLI) værktøjer. Udviklere kan således stilladsere en ny funktion med en enkelt kommando, mens de bruger denne Node.js-ramme.

NestJS leverer modulet, servicen, controlleren og testbunken for at komme i gang. Du kan også stole på de mange boilerplates og skabeloner, der er tilgængelige for at gøre din udviklingsrejse lettere.

Indlæringskurven for NestJS vil være let for de bekendte med loops, syntaks og betingelser i JavaScript og Angular.

Funktioner af NestJS

Bygget på Typescript

NestJS er bygget på Typescript, en superscript af JavaScript. Typescript giver en bedre udviklingsoplevelse, da du ikke manuelt skal tjekke fejl, hver gang du ændrer noget i koden. Typescript tilbyder grundlæggende alle funktionerne i JavaScript, men kommer også med nogle ekstra funktioner.

Dependency Injection Container

Afhængighedsinjektion adskiller initialiseringen af ​​de objekter, som klassen bruger, fra selve klassen. I et sådant tilfælde kaldes klassen ‘klienten’, mens klassens afhængigheder er kendt som ‘tjenester’. Denne indbyggede DI i NestJS gør applikationer mere effektive og modulære.

Kraftfuld kommandolinjegrænseflade (CLI)

Du kan initialisere, udvikle og vedligeholde alle dine NestJS-applikationer ved hjælp af NestCLI. Der er mange ting, du kan gøre ved hjælp af Nest CLI, såsom;

  • Stilladser af projektet
  • Betjener projektet i udviklingstilstand
  • Byg og bundt applikationen til produktionsdistribution
  Hvad skal du gøre, hvis du har spildt vand eller kaffe på din bærbare computer

Modularisering

Hver NestJS-applikation har mindst ét ​​modul. ‘Root’-modulet er det mest grundlæggende. I en typisk NestJS-app vil alle logiske dele af applikationen leve i den samme domænegrænse (modul). En sådan indstilling gør det nemt at organisere komponenter, hvor en applikation vil have flere moduler med et tæt beslægtet sæt af muligheder.

Enhedstest

Automatiseret test kommer med masser af fordele. Men processen med at sætte sådanne tests kan være så meget mere involverende. NestJS har forskellige funktioner til at hjælpe teams med at bygge og automatisere tests. Det gode ved NestJS er, at det kan bruges med forskellige testværktøjer. Nest-afhængighedsindsprøjtningssystemet stilles til rådighed under test for nemt at håne komponenter.

Database agonistisk

Du kan nemt integrere med enhver SQL- eller NoSQL-database baseret på dine behov og præferencer, når du arbejder med NestJS. At forbinde NestJS til en database er meget simpelt, da du blot skal indlæse en passende Node.js-driver.

Støtte forskellige biblioteker

NestJS er kompatibel med forskellige værktøjer, hvilket gør applikationsudviklingen hurtigere. Denne ramme understøtter logning, validering, cachelagring, WebSockets, TypeORM, Mongoose og GraphQL uden ekstra konfiguration.

Arkitektur og arbejdsgang af NestJS

NestJS har en 3-lags arkitektur bestående af controllere, udbydere og moduler. Udviklere kan således skabe ren kode, der ikke overlapper.

Billedkilde: bedre programmering

Controllere

Controllere i NestJS fungerer som en bro mellem klientanmodninger og -svar. Routing-mekanismen vil altid dirigere anmodningen til en passende controller, når der foretages en HTTP-anmodning. Rammen bruger dekoratører og klasser til at skabe controllere. Hver klassemetode kortlægges derefter til ruter for at modtage en specifik anmodning.

Udbydere

Udbydere kan beskrives som det grundlæggende i NestJS. Udbydere injiceres som afhængigheder og skaber relationer mellem forskellige objekter. Klasser i NestJS, såsom hjælpere, tjenester eller depoter, kan behandles som udbydere, når `@Injectable()` dekoratoren er blevet tilføjet. Sådanne udbydere kan også injiceres i en klasse gennem konstruktøren, og NestJS vil løse afhængighederne.

Moduler

Et modul i NestJS samler et tæt beslægtet sæt af muligheder. Hver NestJS-app har et rodmodul, der bruges som indgangspunkt. Brugen af ​​flere moduler er meget tilrådeligt, hvis du ønsker at have organiseret og letlæselig kode. Nests `@Module()`-dekorator definerer et modul og giver også information såsom afhængigheder, controllere og udbydere til dette modul.

  Lær om lingvistik med disse 6 online sprogidentifikatorer

Kom godt i gang med NestJS

Sørg for, at Node.js og npm er installeret. Du har brug for et runtime-miljø, og Node.js er perfekt til denne opsætning. Du skal bruge version >= 12, bortset fra v13. Du kan kontrollere, om du har Node.js og npm installeret gennem disse kommandoer;

node -v
npm -v

Hvis begge er installeret, vil du få et output tæt på dette

Hvis du ikke har dem, skal du installere dem via den officielle side. Heldigvis er både Node.js og npm installeret sammen.

  • Installer Nest CLI. Brug følgende kommandoer til at indstille CLI og projektet;
npm i -g @nestjs/cli
nest new project-name

Vi vælger projektnavnet til at være mynestapp til demonstrationsformål. NestJS giver dig mulighed for at arbejde enten med Typescript eller Vanilla JavaScript. Vælg det der passer dig og tryk på enter. Når appen er blevet stilladset, vil filstrukturen blive sat op, og ‘src’-mappen vil komme med flere kernefiler, som vist på dette skærmbillede

  • Kør applikationen/din første hej verden

Når installationen er færdig, skal du køre disse kommandoer for at køre udviklingsserveren

cd mynestapp
npm run start

Skriv http://localhost:3000/ på din browser, og din første “Hello World” på NestJs skulle blive vist

NestJS: Fordele

  • Let at lære. Det er nemt at mestre NestJS, især hvis du er fra Angular eller har en generel forståelse af JavaScript. Detaljeret dokumentation gør det også nemt at mestre at arbejde med denne kraftfulde ramme.
  • Fleksibel. Du kan bygge mange ting ved hjælp af NestJS. Du kan oprette MVC-applikationer, GraphQL-applikationer, RESTful API’er og web-sockets ved hjælp af denne Node.js-ramme.
  • Leveres med tusindvis af moduler. Fællesskabsunderstøttede moduler gør det nemt for udviklere at strukturere forskellige funktioner, mens de opretter applikationer på serversiden.
  • Hurtig udvikling og god arkitektur. Du behøver ikke oprette alt fra bunden, når du arbejder med NestJS. Den samme ramme har dog en solid arkitektur, der gør det nemt at forstå din kode.

NestJS: Ulemper

  • Ikke gunstig for dem med TypeScript og Angular baggrunde. NestJS låner meget fra Angular-arkitektur, og dem uden sådan viden kan tage tid at forstå syntaksen og strukturen.
  • Mangler på nogle områder. NestJS er stadig ung og konkurrerer muligvis ikke positivt med nogle etablerede rammer baseret på Python og GO.
  12 Pålidelige e-mail-hostingtjenester til små og store virksomheder

Virksomheder, der bruger NestJS

#1. Adidas

Adidas, en skoproducent og designer, er blandt de virksomheder, der bruger NestJS. De fantastiske funktioner ved NestJS må have tiltrukket denne skogigant til at bruge den på sin backend.

#2. Capgemini

Capgemini er en fransk multinational, der tilbyder rådgivning, teknologi, outsourcing og professionelle tjenester. Dette firma bruger NestJS i sin tech-stack.

#3. Roche

Roche er en multinational sundhedsvirksomhed, der har to divisioner; lægemidler og diagnostik. Roche bruger NestJS som en af ​​teknologistakkene på deres hovedwebsted.

Læringsressourcer

#1. NestJS Zero to Hero

NestJS Zero to Hero lærer udviklere at skabe og implementere backend-applikationer til virksomheder ved hjælp af Typescript og Node.js. Kurset lærer, hvordan man opretter API’er, Autorisation og Autentificering, Unit testing Nest-applikationer og TypeORM til databaseinteraktion, blandt mange andre ting.

#2. NestJS: Den komplette udviklervejledning

Dette kursus lærer udviklere, hvordan man opretter backend-API’er ved hjælp af Nest, TypeScript og TypeORM. Denne komplette guide har alt, hvad du har brug for fra opsætning af din NestJS-appkodning, test og implementering. Du vil også få en forståelse bag kulisserne af NestJS web-framework.

#3. Mester NestJS

Master NestJS lærer, hvordan man udvikler Node.js-apps i virksomhedsklasse ved hjælp af TypeScript. Kurset underviser i validering og dataserialisering, hvordan JWT-tokens fungerer, hvordan man bruger NestCLI og moderne databaseabstraktion, blandt mange flere ting.

#4. NestJs i praksis (med MongoDB)

NestJS i praksis lærer alt, hvad du behøver for at lære om NestJS, lige fra moduler, controllere, GuardsServices, Pipes og Middleware. Kurset tager en projektbaseret tilgang, hvor du koder og hoster din kode på GitHub med downloadbare zip-filer til hver sektion.

#5. Nest.js: Et progressivt Node.js-rammeværk

Denne bog introducerer udviklere til NestJS og hvordan man kan udnytte JavaScript og TypeScript. Bogen er designet i et how-to-format for at sikre, at du kan konfigurere og køre din NestJS-app på ingen tid.

#6. Praktisk Nest.js: Udvikl rene MVC-webapplikationer

Praktisk Nest.js-bog bruger en projektbaseret tilgang til at skabe en onlinebutiksapplikation, der bruger forskellige NestJS-funktioner. Bogen indeholder korte diskussioner, tips og nyttige sætninger, når du opretter din NestJS-app.

Konklusion

Udover at være et kraftfuldt Node.js-framework, er NestJS også et af de mest populære Typescript-frameworks til server-side-applikationer i dag. Det faktum, at det tilbyder bedste praksisser for kodning og en standardudviklingsarkitektur, har fået det til at tiltrække mange ingeniører, der ønsker at fokusere på at bygge forretningslogik, når de bygger applikationer.