Am Joer 2021 war JavaScript déi meescht benotzt Programméierungssprooch.
Den Appel vun dëser Technologie ass onbestreideg, wéi gesi vun der grousser Unzuel u Kaderen déi JavaScript Programméierung erméiglechen.
Et gi Angular, React, a Vue um Frontend, souwéi Express an Next um Backend, fir e puer ze nennen.
Mat sou vill wonnerschéi Kaderen fir Backend Programméierung am JavaScript zougänglech, denkt Dir vläicht firwat ech no eppes anescht sichen anstatt einfach Express oder Next ze benotzen.
Vläicht musst Dir den Entwécklungsprozess séier mat engem anstännege Kesselplat sprangen, a manuell net nëmmen nei Controller dobäizemaachen, awer och Servicer mécht Iech krank.
Oder Dir wëllt grouss, skalierbar Software erstellen déi einfach ze managen ass. Oder vläicht wëllt Dir einfach méi effizient a bequem schaffen.
Egal wat an Ärer Ëmstänn richteg ass, Nest.js kann déi perfekt Léisung fir Är Besoinen sinn.
Dëse Post gëtt NestJS Abléck souwéi praktesch Erfahrung.
Wat ass NestJS?
NestJS ass e progressive Node Kader deen Open-Source, erweiterbar an adaptéierbar ass .Js Kader fir ze bauen, engagéieren an Erausfuerderung Backend Systemer. Et ass elo den Node mat dem schnellsten Wuesstumsrate.
TypeScript Kader fir js. NestJS gëtt benotzt fir Uwendungen ze kreéieren déi skalierbar, testbar a locker verbonne sinn.
Et füügt Skalierbarkeet un Node. Js Server sinn op e ganz neien Niveau geholl ginn. PostgreSQL, MongoDB, a MySQL gehéieren zu den ënnerstëtzten Datenbanken.
NestJS ass erweiterbar well et mat anere Bibliothéike benotzt ka ginn; flexibel wéinst sengem adaptéierbare vollwäertege Ökosystem. A progressiv well et JavaScript Funktiounen an Designprinzipien ënnerstëtzt.
Et ass haaptsächlech beaflosst vu Angular, React, a Vue a kënnt mat agebauter Ofhängegkeetsinjektioun.
Eegeschaften
- Et ass einfach ze benotzen, ze léieren a beherrschen.
- Et ass gratis an Open-Source (MIT Lizenz)
- Mächteg Command Line Interface (CLI) fir méi Produktivitéit an Entwécklung Einfachheet
- Eenheetstest Programmer déi einfach ze benotzen sinn
- TypeScript, eng enk getippten Sprooch déi e Superset vu JavaScript ass, gëtt benotzt.
- Entwécklung an Ënnerhalt vun enger aktiver Codebase.
- Ënnerstëtzung fir Honnerte vun Nest-spezifesch Moduler déi et einfach maachen mat populäre Technologien an Iddien ze interface wéi TypeORM, Mongoose, GraphQL, Logging, Validatioun, Caching, WebSockets, a méi.
Wat sinn d'Bausteng vun NestJS?
D'Gebai Komponente vun Nest Uwendungen sinn ënnendrënner opgezielt; et ginn anerer, mä dës dräi sinn déi bedeitendst. Loosst eis se séier kucken.
1. Controller
D'Controller si verantwortlech fir d'Veraarbechtung vun erakommen Ufroen an d'Äntwert op Clienten. Et kritt speziell HTTP-Ufroen, an de Routing-System bestëmmt wéi ee Controller déi Ufro kritt.
Et entwéckelt dann eng gëeegent Äntwert fir ze schécken. Mat der Hëllef vu Klassen an Dekorateuren gëtt en einfache Sammler gebaut an all Controller huet säin eegene Set vu Strecken fir verschidden Aufgaben ze maachen.
2. Ubidder
Ubidder sinn eng Schlëssel Iddi am Nest. Vill vun de Kär Nest Klassen - Servicer, Repositories, Fabriken, Helfer, a sou weider - kënnen als Fournisseur gehandhabt ginn.
A Provider Basis Notioun ass, datt et als Ofhängegkeet injizéiert ginn; dëst implizéiert datt Objete verschidde Associatiounen matenee bilden, an d'Roll vun der "Wiring up" Instanzen vun Objeten kann haaptsächlech un den Nest Runtime System outsourced ginn.
3. Moduler
E Modul ass eng Klass mam @Module() Dekorateur deen d'Komponente vun der Applikatiounsstruktur organiséiert. All Applikatioun huet e Root Modul deen benotzt gëtt fir d'Applikatiounsgrafik ze konstruéieren, wat d'Ofhängegkeeten an d'Interaktiounen tëscht dem Provider an dem Modul weider léist.
Dësen Dekorateur gëtt Metadaten un Nest.js fir z'identifizéieren wéi eng Komponenten, Controller oder aner Ressourcen am Applikatiounscode benotzt ginn an se an engem eenzege Set kombinéieren.
All Modul huet eng Sammlung vu Fäegkeeten, déi op iergendeng Manéier verbonne sinn.
Start mat NestJS
1. Installatioun
Loosst eis NestJS installéieren an e Projet domat maachen andeems Dir dës Schrëtt befollegt:
Déi folgend Verzeichnisstruktur gëtt als Resultat vun dësem erstallt:
2. Controller
D'Bausteng vum Nest si Controller. Dëst sinn d'Plaze wou Inbound Ufroe gehandhabt ginn. Dir kënnt de Wee Wee spezifizéieren mat HTTP-Methodemodifikateuren (Get, Post, Put, Delete, a sou weider) Dekorateuren, wéi am Code hei ënnen gesi ginn.
Nestjs benotzt d'Dekorateur Approche an ass meeschtens am Typescript entwéckelt, obwuel et och JavaScript ënnerstëtzt. Dir kënnt och eng Klass Validator benotzen der Ufro Kierper ze validéieren.
Ech wäert just eng Nestjs Server Instanz maachen an ValidationPipe global dobäi. Pipes si just Methoden déi virum Controller ausféieren. Päifen kënnen och um Method / Argument Niveau mat dem @UsePipes Dekorateur applizéiert ginn.
3. Ubidder
Ubidder sinn en anere kritesche Bestanddeel vun Nestjs. Bei wäitem hunn ech Daten an enger temporärer Variabel gespäichert. Dofir kann sou eng einfach Aufgab mat Controller Handler erfëllt ginn.
Wéi och ëmmer, fir méi grouss, méi komplizéiert Logik, Code Trennung a Wiederverwendung wier schwéier. Dëst ass wann d'Liwweranten erakommen. Dir kënnt e Fournisseur uewen op enger Klass deklaréieren / kreéieren andeems Dir den @Injectable Dekorateur benotzt. Dann, andeems Dir Ubidder benotzt, kënnt Dir Ofhängegkeetsinjektioun, Logging an aner Aufgaben maachen.
4. Moduler
Nestjs Moduler sinn net global; amplaz, si hunn Déift.
Wéi och ëmmer, et kann och mat all anere Moduler gedeelt ginn. Och wann et, wéi Angular, Global Moduler ubitt, ass et méi ubruecht Servicer / Controller am Modul ze halen wou se am meeschten an Nestjs benotzt ginn.
Den NestCLI gëtt benotzt fir Moduler déi meescht vun der Zäit ze produzéieren, an Ubidder / Controller, déi am Kontext vum Modul generéiert ginn, ginn automatesch vum CLI bäigefüügt. Dës sinn als Feature Moduler bekannt.
5. Ausnam Filtere
Ausnahmsfilter si Fehlerhandterer déi opgeruff ginn wann e Controller eng Ausnam werft. Et geréiert automatesch d'Thema a liwwert eng entspriechend, userfrëndlech Fehlermeldung.
Vill HttpException ierflech Ausnahmen ginn vum Package @nestjs/common geliwwert, dorënner NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException, a vill anerer. Dir kënnt souguer Ären eegene ExceptionFilter designen.
6. Mëttelstuf
Eng Funktioun déi virum Route Handler opgeruff gëtt gëtt Middleware genannt. D'Ufro an d'Äntwert Objeten, souwéi déi nächst () Middleware Funktioun am Ufro-Äntwert Zyklus vun der Applikatioun, sinn zougänglech fir Middleware Funktiounen.
Eng Variabel genannt Next gëtt typesch benotzt fir déi nächst Middleware Funktioun z'identifizéieren. Benotzerdefinéiert Nest Middleware kann an enger Method oder enger Klass implementéiert ginn mat dem @Injectable () Dekorateur.
7. Wiechter
D'Wuechte sinn nëmmen fir eng Saach verantwortlech. Et ass hir Verantwortung ze bewäerten ob eng Ufro vum Controller veraarbecht gëtt oder net baséiert op spezifeschen Ëmstänn (Spezifizéiert Benotzerdefinéiert Logik).
Et ass hëllefräich fir Authentifikatioun / Autorisatioun an ass déi recommandéiert Method an Nestjs.
Och wann d'Authentifikatioun / Permissiounen, asw., kënne mat Middleware gemaach ginn, gëtt et net an Express oder aneren HTTP-Server gemaach, well se kee verbonne staarke Kontext hunn a kee Grond hunn ze wëssen wéi eng Method benotzt gëtt fir d'Ufro ze veraarbecht.
Virdeeler
- De Kader ass staark ofhängeg vun Annotatiounen, déi benotzt gi fir alles vun Endpunkte bis Swagger Dokumentatioun ze produzéieren. D'Endpunkte si grondleeënd an uerdentlech, an d'Annotatioune maachen d'Entwécklung allgemeng méi einfach.
- Et ass einfach allgemeng Zweck Moduler ze externen a Code a ville Projeten ze benotzen well Nest.js e Modul-baséiert Kader ass.
- Nest.js 'Ordnerstruktur ass wesentlech vun Angular beaflosst. Wann Dir en Nest Service designt, erlaabt dëst e minimale Downtime.
- Komponenten hunn hir eege Verzeichnisser, mat der Root mat der Applikatioun Modul an Haaptrei Fichier. Wéinst der Einfachheet vun der Struktur kann méi Opmierksamkeet op den Design vun Endpunkter an hire Clienten gesat ginn anstatt d'Struktur vun der Applikatioun.
- Nest, wéi Angular, bitt e flott Kommandozeilinstrument, Nestjs / cli, dat iwwer Node Package Manager verfügbar ass.
Nodeeler
- Nest huet e Virdeel a punkto TypeScript Benotzung an Angular Integratioun, awer et feelt d'finanziell Ënnerstëtzung vun enger riseger Firma.
- De Mangel u Dokumentatioun stellt déi gréisste Bedrohung fir Nest Benotzer. Och wann de Kader exzellent Interaktioune mat anere Kaderen huet, ass d'Dokumentatioun schaarf an adresséiert keng potenziell Schwieregkeeten.
- Nest huet e Virdeel a punkto TypeScript Benotzung a Angular.
Konklusioun
NestJS bitt Entwéckler e grousse Been erop. Fir d'Entwécklung unzefänken, alles wat Dir maache musst ass eng nei App erstellen an du bass gutt goen. Dëse Kader bitt direkt e wesentleche Boost, wärend Dir och hëlleft zousätzlech Etappen ze huelen andeems Dir eng passend Apparchitektur opstellt.
Et benotzt modernste Methoden an Technologie fir Uwendungen ze produzéieren déi souwuel handhabbar a laang dauerhaft sinn. Et kann benotzt ginn fir mat GraphQL, WebSockets ze verbannen, a Mikroservicer ze konstruéieren.
Hannerlooss eng Äntwert