Introduktion till NestJS [+6 Learning Resources]

NestJS är ett progressivt Node.js-ramverk för att bygga skalbara, effektiva och pålitliga applikationer på serversidan.

NestJS byggdes för att eliminera oorganiserade kodbaser. Dess modulära struktur gör det enkelt att organisera kod i olika moduler.

NestJS är byggt på Typescript och använder ExpressJS under huven. NestJS är älskad av utvecklare som vill dra nytta av TypeScripts typkontrollkraft. NestJS kombinerar olika aspekter av funktionell reaktiv programmering (FRP), objektorienterad programmering (OOP) och funktionell programmering (FP).

Varför NestJS?

NestJS är nybörjarvänligt eftersom det har en bra struktur och lättanvända Command Line Interface (CLI) verktyg. Utvecklare kan alltså scaffolda en ny funktion med ett enda kommando medan de använder detta Node.js-ramverk.

NestJS tillhandahåller modulen, tjänsten, styrenheten och testhögen för att komma igång. Du kan också ta vara på de många plattorna och mallarna som finns tillgängliga för att göra din utvecklingsresa enklare.

Inlärningskurvan för NestJS kommer att vara enkel för de bekanta med loopar, syntax och villkor i JavaScript och Angular.

Funktioner hos NestJS

Byggd på Typescript

NestJS är byggt på Typescript, en upphöjd skrift av JavaScript. Typescript ger en bättre utvecklingsupplevelse då du inte behöver kontrollera fel manuellt varje gång du ändrar något i koden. Typescript erbjuder i princip alla funktioner i JavaScript men kommer också med några extra funktioner.

Dependency Injection Container

Beroendeinjektion skiljer initieringen av objekten som klassen använder från klassen själv. I ett sådant fall kallas klassen för ’klienten’ medan klassberoendena är kända som ’tjänster’. Denna inbyggda DI i NestJS gör applikationer mer effektiva och modulära.

Kraftfullt kommandoradsgränssnitt (CLI)

Du kan initiera, utveckla och underhålla alla dina NestJS-applikationer med hjälp av NestCLI. Det finns många saker du kan göra med Nest CLI, till exempel;

  • Ställning av projektet
  • Betjänar projektet i utvecklingsläge
  • Bygg och bunta applikationen för produktionsdistribution

Modularisering

Varje NestJS-applikation har minst en modul. ”Root”-modulen är den mest grundläggande. I en typisk NestJS-app kommer varje logisk del av applikationen att leva i samma domängräns (modul). En sådan inställning gör det enkelt att organisera komponenter där en applikation kommer att ha flera moduler med en närbesläktad uppsättning funktioner.

Enhetstestning

Automatiserad testning kommer med massor av fördelar. Processen att sätta sådana tester kan dock vara så mycket mer involverande. NestJS har olika funktioner som hjälper team att bygga och automatisera tester. Det som är bra med NestJS är att det kan användas med olika testverktyg. Nest-beroendeinjektionssystemet görs tillgängligt under testning för att enkelt håna komponenter.

Databasagonistisk

Du kan enkelt integrera med vilken SQL- eller NoSQL-databas som helst baserat på dina behov och preferenser när du arbetar med NestJS. Att ansluta NestJS till en databas är väldigt enkelt, eftersom du bara behöver ladda en lämplig Node.js-drivrutin.

Stöd olika bibliotek

NestJS är kompatibelt med olika verktyg, vilket gör applikationsutvecklingen snabbare. Detta ramverk stöder loggning, validering, cachelagring, WebSockets, TypeORM, Mongoose och GraphQL utan extra konfiguration.

Arkitektur och arbetsflöde för NestJS

NestJS har en 3-lagers arkitektur som består av kontroller, leverantörer och moduler. Utvecklare kan alltså skapa ren kod som inte överlappar varandra.

Bildkälla: bättre programmering

Styrenheter

Styrenheter i NestJS fungerar som en brygga mellan klientförfrågningar och svar. Routningsmekanismen kommer alltid att rikta begäran till en lämplig kontrollant närhelst en HTTP-begäran görs. Ramverket använder dekoratörer och klasser för att skapa kontroller. Varje klassmetod mappas sedan till rutter för att ta emot en specifik begäran.

Leverantörer

Leverantörer kan beskrivas som grunderna för NestJS. Leverantörer injiceras som beroenden och skapar relationer mellan olika objekt. Klasser i NestJS, som hjälpredor, tjänster eller förråd, kan behandlas som leverantörer när dekoratören `@Injectable()` har lagts till. Sådana leverantörer kan också injiceras i en klass genom konstruktorn, och NestJS kommer att lösa beroenden.

Moduler

En modul i NestJS sammanför en närbesläktad uppsättning funktioner. Varje NestJS-app har en rotmodul som används som startpunkt. Användning av flera moduler är starkt tillrådligt om du vill ha organiserad och lättläst kod. Nests `@Module()`-dekorator definierar en modul och tillhandahåller även information såsom beroenden, kontroller och leverantörer för den modulen.

Komma igång med NestJS

Se till att Node.js och npm är installerade. Du behöver en körtidsmiljö och Node.js är perfekt för den här installationen. Du behöver version >= 12, förutom v13. Du kan kontrollera om du har Node.js och npm installerade genom dessa kommandon;

node -v
npm -v

Om båda är installerade får du en utgång nära detta

Om du inte har dem, installera dem via den officiella sidan. Lyckligtvis är både Node.js och npm installerade tillsammans.

  • Installera Nest CLI. Använd följande kommandon för att ställa in CLI och projektet;
npm i -g @nestjs/cli
nest new project-name

Vi väljer att projektnamnet ska vara mynestapp i demonstrationssyfte. NestJS ger dig en chans att arbeta antingen med Typescript eller Vanilla JavaScript. Välj vad som passar dig och tryck på enter. När appen har byggts upp kommer filstrukturen att ställas in, och mappen ’src’ kommer med flera kärnfiler, som visas i den här skärmdumpen

  • Kör applikationen/din första hej värld

När installationen är klar, kör dessa kommandon för att köra utvecklingsservern

cd mynestapp
npm run start

Skriv http://localhost:3000/ i din webbläsare och din första ”Hello World” på NestJs ska visas

NestJS: Fördelar

  • Lätt att lära. Det är lätt att bemästra NestJS, speciellt om du kommer från Angular eller har en allmän förståelse för JavaScript. Detaljerad dokumentation gör det också enkelt att bemästra arbetet med detta kraftfulla ramverk.
  • Flexibel. Du kan bygga många saker med NestJS. Du kan skapa MVC-applikationer, GraphQL-applikationer, RESTful API:er och webbsockets med detta Node.js-ramverk.
  • Levereras med tusentals moduler. Community-stödda moduler gör det enkelt för utvecklare att strukturera olika funktioner samtidigt som de skapar applikationer på serversidan.
  • Snabb utveckling och bra arkitektur. Du behöver inte skapa allt från grunden när du arbetar med NestJS. Men samma ramverk har en solid arkitektur för att göra det enkelt att förstå din kod.

NestJS: Nackdelar

  • Inte gynnsamt för dem med TypeScript och Angular bakgrunder. NestJS lånar mycket från Angular architecture, och de utan sådan kunskap kan ta tid att förstå syntaxen och strukturen.
  • Saknas på vissa områden. NestJS är fortfarande ung och kanske inte konkurrerar positivt med vissa etablerade ramverk baserade på Python och GO.

Företag som använder NestJS

#1. Adidas

Adidas, en skotillverkare och designer, är bland de företag som använder NestJS. De fantastiska egenskaperna hos NestJS måste ha lockat denna skojätte att använda den på sin backend.

#2. Capgemini

Capgemini är ett franskt multinationellt företag som erbjuder konsulttjänster, teknik, outsourcing och professionella tjänster. Detta företag använder NestJS i sin tekniska stack.

#3. Roche

Roche är ett multinationellt hälsovårdsföretag som har två divisioner; läkemedel och diagnostik. Roche använder NestJS som en av teknikstackarna på sin huvudwebbplats.

Lärresurser

#1. NestJS Zero to Hero

NestJS Zero to Hero lär utvecklare hur man skapar och distribuerar back-end-applikationer för företag med Typescript och Node.js. Kursen lär ut hur man skapar API:er, auktorisering och autentisering, enhetstestning av Nest-applikationer och TypeORM för databasinteraktion, bland många andra saker.

#2. NestJS: Den kompletta utvecklarguiden

Den här kursen lär utvecklare hur man skapar backend-API:er med Nest, TypeScript och TypeORM. Den här kompletta guiden har allt du behöver från att konfigurera NestJS-appkodning, testning och implementering. Du kommer också att få en förståelse bakom kulisserna av NestJS webbramverk.

#3. Master NestJS

Master NestJS lär ut hur man utvecklar Node.js-appar i företagsklass med TypeScript. Kursen lär ut validering och dataserialisering, hur JWT-tokens fungerar, hur man använder NestCLI och modern databasabstraktion, bland många fler saker.

#4. NestJs i praktiken (med MongoDB)

NestJS in Practice lär ut allt du behöver för att lära dig om NestJS, från moduler, kontroller, GuardsServices, Pipes och Middleware. Kursen tar ett projektbaserat tillvägagångssätt där du kodar och hostar din kod på GitHub med nedladdningsbara zip-filer för varje avsnitt.

#5. Nest.js: Ett progressivt Node.js-ramverk

Den här boken introducerar utvecklare till NestJS och hur man använder JavaScript och TypeScript. Boken har utformats i ett instruktionsformat för att säkerställa att du kan konfigurera och köra din NestJS-app på nolltid.

#6. Praktisk Nest.js: Utveckla rena MVC-webbapplikationer

Praktisk Nest.js-bok använder ett projektbaserat tillvägagångssätt för att skapa en onlinebutiksapplikation som använder olika NestJS-funktioner. Boken innehåller korta diskussioner, tips och användbara fraser när du skapar din NestJS-app.

Slutsats

Förutom att vara ett kraftfullt Node.js-ramverk är NestJS också ett av de mest populära Typescript-ramverken för applikationer på serversidan idag. Det faktum att det erbjuder bästa praxis för kodning och en standardutvecklingsarkitektur har gjort att det lockar många ingenjörer som vill fokusera på att bygga affärslogik när de bygger applikationer.