Introduksjon til NestJS [+6 Learning Resources]

NestJS er et progressivt Node.js-rammeverk for å bygge skalerbare, effektive og pålitelige applikasjoner på serversiden.

NestJS ble bygget for å eliminere uorganiserte kodebaser. Dens modulære struktur gjør det enkelt å organisere kode i forskjellige moduler.

NestJS er bygget på Typescript og bruker ExpressJS under panseret. NestJS er elsket av utviklere som ønsker å dra nytte av TypeScripts typekontrollkraft. NestJS kombinerer ulike aspekter ved funksjonell reaktiv programmering (FRP), objektorientert programmering (OOP) og funksjonell programmering (FP).

Hvorfor NestJS?

NestJS er nybegynnervennlig siden den har en god struktur og brukervennlige Command Line Interface (CLI) verktøy. Utviklere kan dermed stillas en ny funksjon med en enkelt kommando mens de bruker dette Node.js-rammeverket.

NestJS tilbyr modulen, tjenesten, kontrolleren og testbunken for å komme i gang. Du kan også se på de mange kjeleplatene og malene som er tilgjengelige for å gjøre utviklingsreisen din enklere.

Læringskurven for NestJS vil være enkel for de bekjente med looper, syntaks og betingelser i JavaScript og Angular.

Funksjoner av NestJS

Bygget på Typescript

NestJS er bygget på Typescript, et hevet skrift av JavaScript. Typescript gir en bedre utviklingsopplevelse da du ikke trenger å sjekke feil manuelt hver gang du endrer noe i koden. Typescript tilbyr i utgangspunktet alle funksjonene til JavaScript, men kommer også med noen ekstra funksjoner.

Dependency Injection Container

Avhengighetsinjeksjon skiller initialiseringen av objektene klassen bruker fra selve klassen. I et slikt tilfelle kalles klassen «klienten» mens klasseavhengighetene er kjent som «tjenester». Denne innebygde DI i NestJS gjør applikasjoner mer effektive og modulære.

Kraftig kommandolinjegrensesnitt (CLI)

Du kan initialisere, utvikle og vedlikeholde alle NestJS-applikasjonene dine ved hjelp av NestCLI. Det er mange ting du kan gjøre med Nest CLI, for eksempel;

  • Stillas for prosjektet
  • Serverer prosjektet i utviklingsmodus
  • Bygg og bunt applikasjonen for produksjonsdistribusjon
  Slik tilbakestiller du HomePod mini enkelt

Modularisering

Hver NestJS-applikasjon har minst én modul. «Root»-modulen er den mest grunnleggende. I en typisk NestJS-app vil hver logiske del av applikasjonen leve i samme domenegrense (modul). En slik innstilling gjør det enkelt å organisere komponenter der en applikasjon vil ha flere moduler med et nært beslektet sett med muligheter.

Enhetstesting

Automatisert testing kommer med mange fordeler. Imidlertid kan prosessen med å sette slike tester være så mye mer involverende. NestJS har ulike funksjoner for å hjelpe team med å bygge og automatisere tester. Det som er bra med NestJS er at det kan brukes med ulike testverktøy. Nest-avhengighetsinjeksjonssystemet gjøres tilgjengelig under testing for enkelt å håne komponenter.

Databaseagonistisk

Du kan enkelt integrere med hvilken som helst SQL- eller NoSQL-database basert på dine behov og preferanser når du arbeider med NestJS. Å koble NestJS til en database er veldig enkelt, siden du bare trenger å laste inn en passende Node.js-driver.

Støtt ulike biblioteker

NestJS er kompatibel med ulike verktøy, noe som gjør applikasjonsutviklingen raskere. Dette rammeverket støtter logging, validering, caching, WebSockets, TypeORM, Mongoose og GraphQL uten ekstra konfigurasjon.

Arkitektur og arbeidsflyt for NestJS

NestJS har en 3-lags arkitektur som består av kontrollere, leverandører og moduler. Utviklere kan dermed lage ren kode som ikke overlapper.

Bildekilde: bedre programmering

Kontrollere

Kontrollere i NestJS fungerer som en bro mellom klientforespørsler og svar. Rutingmekanismen vil alltid sende forespørselen til en passende kontroller når en HTTP-forespørsel sendes. Rammeverket bruker dekoratører og klasser for å lage kontrollere. Hver klassemetode blir deretter kartlagt til ruter for å motta en spesifikk forespørsel.

Leverandører

Leverandører kan beskrives som grunnleggende for NestJS. Leverandører injiseres som avhengigheter og skaper relasjoner mellom ulike objekter. Klasser i NestJS, for eksempel hjelpere, tjenester eller repositories, kan behandles som tilbydere når `@Injectable()`-dekoratoren er lagt til. Slike leverandører kan også injiseres i en klasse gjennom konstruktøren, og NestJS vil løse avhengighetene.

Moduler

En modul i NestJS samler et nært beslektet sett med muligheter. Hver NestJS-app har en rotmodul som brukes som inngangspunkt. Bruk av flere moduler er sterkt tilrådelig hvis du ønsker å ha organisert og lettlest kode. Nests `@Module()`-dekorator definerer en modul og gir også informasjon som avhengigheter, kontrollere og leverandører for denne modulen.

  Evaluer nettstedets effektivitet ved å bruke disse 7 gradereverktøyene

Komme i gang med NestJS

Sørg for at Node.js og npm er installert. Du trenger et kjøretidsmiljø, og Node.js er perfekt for dette oppsettet. Du trenger versjon >= 12, bortsett fra v13. Du kan sjekke om du har Node.js og npm installert gjennom disse kommandoene;

node -v
npm -v

Hvis begge er installert, vil du få en utgang i nærheten av dette

Hvis du ikke har dem, installer dem via den offisielle siden. Heldigvis er både Node.js og npm installert sammen.

  • Installer Nest CLI. Bruk følgende kommandoer for å angi CLI og prosjektet;
npm i -g @nestjs/cli
nest new project-name

Vi velger prosjektnavnet til å være mynestapp for demonstrasjonsformål. NestJS gir deg en sjanse til å jobbe enten med Typescript eller Vanilla JavaScript. Velg det som passer deg og trykk enter. Når appen har blitt stillaset, vil filstrukturen settes opp, og «src»-mappen vil komme med flere kjernefiler, som vist på dette skjermbildet

  • Kjør applikasjonen/din første hei-verden

Når installasjonen er fullført, kjør disse kommandoene for å kjøre utviklingsserveren

cd mynestapp
npm run start

Skriv http://localhost:3000/ i nettleseren din og din første «Hello World» på NestJs skal vises

NestJS: Fordeler

  • Lett å lære. Det er enkelt å mestre NestJS, spesielt hvis du er fra Angular eller har en generell forståelse av JavaScript. Detaljert dokumentasjon gjør det også enkelt å mestre å jobbe med dette kraftige rammeverket.
  • Fleksibel. Du kan bygge mange ting ved hjelp av NestJS. Du kan lage MVC-applikasjoner, GraphQL-applikasjoner, RESTful APIer og web-sockets ved å bruke dette Node.js-rammeverket.
  • Leveres med tusenvis av moduler. Fellesskapsstøttede moduler gjør det enkelt for utviklere å strukturere forskjellige funksjoner mens de lager server-side-applikasjoner.
  • Rask utvikling og god arkitektur. Du trenger ikke lage alt fra bunnen av når du jobber med NestJS. Det samme rammeverket har imidlertid en solid arkitektur som gjør det enkelt å forstå koden din.

NestJS: Ulemper

  • Ikke gunstig for de med TypeScript og Angular bakgrunn. NestJS låner mye fra Angular-arkitektur, og de uten slik kunnskap kan bruke tid på å forstå syntaksen og strukturen.
  • Mangler på enkelte områder. NestJS er fortsatt ung og konkurrerer kanskje ikke gunstig med noen etablerte rammeverk basert på Python og GO.
  Hvordan avinstallere BetterDiscord på PC

Selskaper som bruker NestJS

#1. Adidas

Adidas, en skoprodusent og designer, er blant selskapene som bruker NestJS. De fantastiske egenskapene til NestJS må ha tiltrukket denne skogiganten til å bruke den på baksiden.

#2. Capgemini

Capgemini er en fransk multinasjonal som tilbyr rådgivning, teknologi, outsourcing og profesjonelle tjenester. Dette selskapet bruker NestJS i sin teknologistabel.

#3. Roche

Roche er et multinasjonalt helseselskap som har to divisjoner; legemidler og diagnostikk. Roche bruker NestJS som en av teknologistablene på hovednettstedet.

Læringsressurser

#1. NestJS Zero to Hero

NestJS Zero to Hero lærer utviklere hvordan de lager og distribuerer enterprise back-end-applikasjoner ved å bruke Typescript og Node.js. Kurset lærer hvordan du lager APIer, Autorisasjon og Autentisering, Unit-testing Nest-applikasjoner og TypeORM for databaseinteraksjon, blant mange andre ting.

#2. NestJS: Den komplette utviklerveiledningen

Dette kurset lærer utviklere hvordan de lager backend-APIer ved å bruke Nest, TypeScript og TypeORM. Denne komplette veiledningen har alt du trenger fra å sette opp NestJS-appkoding, testing og distribusjon. Du vil også få en forståelse bak kulissene av NestJS nettrammeverk.

#3. Mester NestJS

Master NestJS lærer hvordan du utvikler Node.js-apper i bedriftsklasse ved hjelp av TypeScript. Kurset lærer validering og dataserialisering, hvordan JWT-tokens fungerer, hvordan du bruker NestCLI, og moderne databaseabstraksjon, blant mange flere ting.

#4. NestJs i praksis (med MongoDB)

NestJS in Practice lærer alt du trenger for å lære om NestJS, fra moduler, kontrollere, GuardsServices, Pipes og Middleware. Kurset tar en prosjektbasert tilnærming der du koder og er vert for koden din på GitHub med nedlastbare zip-filer for hver seksjon.

#5. Nest.js: Et progressivt Node.js-rammeverk

Denne boken introduserer utviklere til NestJS og hvordan man kan utnytte JavaScript og TypeScript. Boken er utformet i et fremgangsmåte-format for å sikre at du kan sette opp og kjøre NestJS-appen din på kort tid.

#6. Praktisk Nest.js: Utvikle rene MVC-nettapplikasjoner

Praktisk Nest.js-bok bruker en prosjektbasert tilnærming for å lage en nettbutikkapplikasjon som bruker ulike NestJS-funksjoner. Boken inneholder korte diskusjoner, tips og nyttige setninger når du lager NestJS-appen din.

Konklusjon

Bortsett fra å være et kraftig Node.js-rammeverk, er NestJS også et av de mest populære Typescript-rammeverkene for serversideapplikasjoner i dag. Det faktum at det tilbyr beste praksis for koding og en standard utviklingsarkitektur har gjort at det tiltrekker seg mange ingeniører som ønsker å fokusere på å bygge forretningslogikk når de bygger applikasjoner.