V roku 2021 bol JavaScript najpoužívanejším programovacím jazykom.
Príťažlivosť tejto technológie je nepopierateľná, o čom svedčí obrovské množstvo rámcov, ktoré umožňujú programovanie v JavaScripte.
Na frontende sú Angular, React a Vue, ako aj Express a Next na backende.
S toľkými úžasnými rámcami pre backendové programovanie v JavaScripte, ktoré sú dostupné, si možno myslíte, prečo by som hľadal niečo iné, ako jednoducho používať Express alebo Next.
Možno budete musieť rýchlo naštartovať vývojový proces so slušným štandardom a manuálne pridávanie nielen nových ovládačov, ale aj služieb vám robí zle.
Alebo chcete vytvoriť veľký, škálovateľný softvér, ktorý sa jednoducho spravuje. Alebo možno jednoducho chcete pracovať efektívnejšie a pohodlnejšie.
Bez ohľadu na to, čo je za vašich okolností pravda, Nest.js môže byť dokonalým riešením pre vaše potreby.
Tento príspevok poskytne informácie o NestJS, ako aj praktické skúsenosti.
čo je NestJS?
NestJS je progresívny rámec Node, ktorý je open source, rozšíriteľný a prispôsobiteľný .Js rámec pre budovanie, zapojenie a náročné backend systémy. Teraz je to uzol s najrýchlejším tempom rastu.
Framework TypeScript pre js. NestJS sa používa na vytváranie aplikácií, ktoré sú škálovateľné, testovateľné a voľne prepojené.
Pridáva škálovateľnosť Node. Servery Js sa dostali na úplne novú úroveň. PostgreSQL, MongoDB a MySQL patria medzi podporované databázy.
NestJS je rozšíriteľný, pretože ho možno použiť s inými knižnicami; flexibilný vďaka svojmu prispôsobivému plnohodnotnému ekosystému. A progresívny, pretože podporuje funkcie JavaScriptu a princípy dizajnu.
Primárne je ovplyvnený Angular, React a Vue a prichádza so vstavaným vstrekovaním závislosti.
Vlastnosti
- Je jednoduché ho používať, učiť sa a ovládať.
- Je to zadarmo a open source (licencia MIT)
- Výkonné rozhranie príkazového riadka (CLI) pre zvýšenú produktivitu a jednoduchosť vývoja
- Programy na testovanie jednotiek, ktoré sa jednoducho používajú
- Používa sa TypeScript, presne napísaný jazyk, ktorý je nadmnožinou JavaScriptu.
- Vývoj a údržba aktívnej kódovej základne.
- Podpora stoviek modulov špecifických pre hniezdo, ktoré zjednodušujú prepojenie s populárnymi technológiami a nápadmi, ako sú TypeORM, Mongoose, GraphQL, protokolovanie, overovanie, ukladanie do vyrovnávacej pamäte, WebSockets a ďalšie.
Aké sú stavebné kamene NestJS?
Stavebné komponenty aplikácií Nest sú uvedené nižšie; existujú aj iné, ale tieto tri sú najvýznamnejšie. Poďme sa na ne rýchlo pozrieť.
1. radiče
Správcovia majú na starosti spracovanie prichádzajúcich žiadostí a odpovedanie klientom. Prijíma konkrétne požiadavky HTTP a smerovací systém určuje, ktorý kontrolér dostane ktorú požiadavku.
Potom navrhne vhodnú odpoveď na odoslanie. Pomocou tried a dekoratérov je zostavený jednoduchý zberač a každý ovládač má svoj vlastný súbor trás na vykonávanie rôznych úloh.
2. Poskytovatelia
Poskytovatelia sú kľúčovou myšlienkou Nest. S mnohými základnými triedami Nest – službami, úložiskami, továrňami, pomocníkmi atď. – možno zaobchádzať ako s poskytovateľmi.
Základná predstava poskytovateľa je, že ho možno aplikovať ako závislosť; to znamená, že objekty môžu vytvárať rôzne asociácie medzi sebou a úloha „prepájania“ inštancií objektov môže byť outsourcovaná hlavne runtime systému Nest.
3. moduly
Modul je trieda s dekorátorom @Module(), ktorý organizuje komponenty štruktúry aplikácie. Každá aplikácia má koreňový modul, ktorý sa používa na zostavenie aplikačného grafu, ktorý ďalej rieši závislosti a interakcie medzi poskytovateľom a modulom.
Tento dekorátor poskytuje metadáta Nest.js, aby bolo možné identifikovať, ktoré komponenty, ovládače alebo iné zdroje budú použité v kóde aplikácie, a spojiť ich do jednej sady.
Každý modul má kolekciu schopností, ktoré sú nejakým spôsobom prepojené.
Začíname s NestJS
1. inštalácia
Nainštalujte NestJS a vytvorte s ním projekt podľa týchto krokov:
V dôsledku toho sa vytvorí nasledujúca adresárová štruktúra:
2. radiče
Stavebnými kameňmi Hniezda sú ovládače. Toto sú miesta, kde sa budú spracovávať prichádzajúce žiadosti. Cestu cesty môžete určiť pomocou modifikátorov metódy HTTP (Get, Post, Put, Delete atď.), ako je vidieť v kóde nižšie.
Nestjs využíva dekoratérsky prístup a je väčšinou vyvinutý v Typescript, aj keď podporuje aj JavaScript. Na overenie tela požiadavky môžete použiť aj validátor triedy.
Len vytvorím inštanciu servera Nestjs a globálne pridám ValidationPipe. Potrubia sú len metódy, ktoré sa vykonávajú pred ovládačmi. Rúry možno použiť aj na úrovni metódy/argumentov pomocou dekorátora @UsePipes.
3. Poskytovatelia
Poskytovatelia sú ďalšou kritickou súčasťou Nestjs. Zďaleka som údaje ukladal do dočasnej premennej. To je dôvod, prečo je možné takúto jednoduchú úlohu vykonať pomocou ovládačov Controller.
Pre väčšiu a komplikovanejšiu logiku by však bolo oddelenie kódu a opätovné použitie zložité. Vtedy prichádzajú dodávatelia. Môžete deklarovať/vytvoriť poskytovateľa na vrchole triedy pomocou dekorátora @Injectable. Potom pomocou poskytovateľov môžete vykonávať vkladanie závislostí, protokolovanie a ďalšie úlohy.
4. moduly
Moduly Nestjs nie sú globálne; namiesto toho majú hĺbku.
Dá sa však zdieľať aj s akýmikoľvek inými modulmi. Aj keď, podobne ako Angular, ponúka globálne moduly, je vhodnejšie ponechať služby/ovládače v module, kde sa v Nestjs najčastejšie používajú.
NestCLI sa väčšinou používa na výrobu modulov a poskytovatelia/ovládače vygenerované v kontexte tohto modulu sú automaticky pridávané pomocou CLI. Tieto sú známe ako moduly funkcií.
5. Filtre výnimiek
Filtre výnimiek sú obslužné nástroje chýb, ktoré sa vyvolajú, keď ovládač vyvolá výnimku. Automaticky rieši problém a poskytuje vhodné, užívateľsky prívetivé chybové hlásenie.
Mnoho zdedených výnimiek HttpException poskytuje balík @nestjs/common, vrátane NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException a mnohých ďalších. Môžete si dokonca navrhnúť svoj vlastný ExceptionFilter.
6. Middleware
Funkcia, ktorá je vyvolaná pred obsluhou trasy, sa nazýva middleware. Objekty požiadavky a odpovede, ako aj funkcia next() middlevéru v cykle žiadosti a odpovede aplikácie, sú prístupné funkciám middlewaru.
Premenná s názvom next sa zvyčajne používa na identifikáciu ďalšej funkcie middlevéru. Vlastný middleware Nest možno implementovať do metódy alebo triedy pomocou dekorátora @Injectable().
7. Stráže
Strážcovia sú zodpovední len za jednu vec. Je ich zodpovednosťou posúdiť, či prevádzkovateľ žiadosť spracuje alebo nespracuje na základe konkrétnych okolností (konkrétne logika definovaná používateľom).
Je to užitočné pri autentifikácii/autorizácii a je to odporúčaná metóda v Nestjs.
Hoci autentizáciu/oprávnenia atď. možno vykonať pomocou midlvéru, nevykonáva sa to na expresných alebo iných HTTP serveroch, pretože nemajú súvisiaci silný kontext a nemajú dôvod vedieť, ktorá metóda sa použije na spracovanie požiadavky.
výhody
- Rámec je vo veľkej miere závislý od anotácií, ktoré sa používajú na vytváranie čohokoľvek od koncových bodov po dokumentáciu Swagger. Koncové body sú základné a prehľadné a anotácie vo všeobecnosti uľahčujú vývoj.
- Je jednoduché externalizovať moduly na všeobecné použitie a opätovne použiť kód v mnohých projektoch, pretože Nest.js je modulový rámec.
- Štruktúra priečinkov Nest.js je výrazne ovplyvnená Angularom. Pri navrhovaní služby Nest to umožňuje minimálne prestoje.
- Komponenty majú svoje vlastné adresáre, pričom koreň obsahuje aplikačný modul a hlavný súbor. Kvôli jednoduchosti štruktúry je možné venovať viac pozornosti dizajnu koncových bodov a ich zákazníkov ako štruktúre aplikácie.
- Nest, podobne ako Angular, ponúka pekný nástroj príkazového riadku, Nestjs/cli, ktorý je dostupný prostredníctvom Node Package Manager.
Nevýhody
- Nest má výhodu v používaní TypeScriptu a integrácii Angular, no chýba mu finančná podpora obrovskej korporácie.
- Nedostatok dokumentácie predstavuje najväčšiu hrozbu pre používateľov Nest. Hoci má rámec vynikajúce interakcie s inými rámcami, dokumentácia je riedka a nerieši žiadne potenciálne problémy.
- Nest má výhodu z hľadiska použitia TypeScript a Angular.
záver
NestJS poskytuje vývojárom obrovskú výhodu. Ak chcete začať s vývojom, všetko, čo musíte urobiť, je vytvoriť novú aplikáciu a môžete ísť. Tento rámec okamžite poskytuje výraznú podporu a zároveň vám pomáha pri vykonávaní ďalších fáz vytvorením vhodnej architektúry aplikácie.
Využíva najmodernejšie metódy a technológie na vytváranie aplikácií, ktoré sú zvládnuteľné a zároveň dlhotrvajúce. Dá sa použiť na pripojenie ku GraphQL, WebSockets a na vytváranie mikroslužieb.
Nechaj odpoveď