V roce 2021 byl JavaScript nejrozšířenějším programovacím jazykem.
Přitažlivost této technologie je nepopiratelná, jak je patrné z velkého množství rámců, které umožňují programování v JavaScriptu.
Existují Angular, React a Vue na frontendu, stejně jako Express a Next na backendu, abychom zmínili několik.
S tolika úžasnými frameworky pro backendové programování v JavaScriptu, které jsou dostupné, si možná říkáte, proč bych hledal něco jiného, než abych jednoduše používal Express nebo Next.
Možná potřebujete rychle nastartovat vývojový proces se slušným vzorem a ručním přidáváním nejen nových ovladačů, ale také služeb se vám dělá špatně.
Nebo chcete vytvořit velký, škálovatelný software, který se snadno spravuje. Nebo možná jen chcete pracovat efektivněji a pohodlněji.
Bez ohledu na to, co je ve vaší situaci pravda, může být Nest.js dokonalým řešením pro vaše potřeby.
Tento příspěvek poskytne statistiky NestJS a také praktické zkušenosti.
Co je NestJS?
NestJS je progresivní framework Node, který je open source, rozšiřitelný a přizpůsobitelný .Js rámec pro budování, zapojení a náročné backend systémy. Nyní je to uzel s nejrychlejším tempem růstu.
Framework TypeScript pro js. NestJS se používá k vytváření aplikací, které jsou škálovatelné, testovatelné a volně propojené.
Přidává škálovatelnost Node. Servery Js byly povýšeny na zcela novou úroveň. Mezi podporované databáze patří PostgreSQL, MongoDB a MySQL.
NestJS je rozšiřitelný, protože jej lze použít s jinými knihovnami; flexibilní díky svému adaptabilnímu plnohodnotnému ekosystému. A progresivní, protože podporuje funkce JavaScriptu a principy návrhu.
Je primárně ovlivněn Angular, React a Vue a přichází s vestavěnou injekcí závislostí.
Funkce
- Snadno se používá, učí se a ovládá.
- Je to zdarma a open source (licence MIT)
- Výkonné rozhraní příkazového řádku (CLI) pro zvýšenou produktivitu a jednoduchost vývoje
- Programy pro testování jednotek, které se snadno používají
- Používá se TypeScript, pevně napsaný jazyk, který je nadmnožinou JavaScriptu.
- Vývoj a údržba aktivní kódové základny.
- Podpora stovek modulů specifických pro hnízdo, které usnadňují propojení s oblíbenými technologiemi a nápady, jako je TypeORM, Mongoose, GraphQL, protokolování, ověřování, ukládání do mezipaměti, WebSockets a další.
Jaké jsou stavební kameny NestJS?
Stavební součásti aplikací Nest jsou uvedeny níže; existují další, ale tyto tři jsou nejvýznamnější. Pojďme se na ně rychle podívat.
1. Regulátory
Správci mají na starosti zpracování příchozích požadavků a odpovídání klientům. Přijímá konkrétní požadavky HTTP a směrovací systém určuje, který řadič obdrží který požadavek.
Poté navrhne vhodnou odpověď k odeslání. S pomocí tříd a dekorátorů je postaven jednoduchý kolektor a každý ovladač má svou vlastní sadu tras pro provádění různých úkolů.
2. Poskytovatelé
Poskytovatelé jsou klíčovou myšlenkou Nest. S mnoha základními třídami Nest – službami, úložišti, továrnami, pomocníky a tak dále – lze zacházet jako poskytovatelé.
Základní představa poskytovatele je, že může být aplikován jako závislost; z toho vyplývá, že objekty mohou tvořit různé asociace mezi sebou a roli „zapojování“ instancí objektů lze outsourcovat především běhovému systému Nest.
3. Moduly
Modul je třída s dekorátorem @Module(), který organizuje součásti struktury aplikace. Každá aplikace má kořenový modul, který se používá k vytvoření aplikačního grafu, který dále řeší závislosti a interakce mezi poskytovatelem a modulem.
Tento dekorátor poskytuje metadata Nest.js, aby bylo možné identifikovat, které komponenty, ovladače nebo jiné zdroje budou použity v kódu aplikace, a spojit je do jediné sady.
Každý modul má sadu funkcí, které jsou nějakým způsobem propojeny.
Začínáme s NestJS
1. Instalace
Pojďme nainstalovat NestJS a vytvořit s ním projekt podle následujících kroků:
V důsledku toho se vytvoří následující adresářová struktura:
2. Regulátory
Stavebními kameny Hnízda jsou ovladače. Toto jsou místa, kde budou vyřizovány příchozí požadavky. Cestu cesty můžete určit pomocí modifikátorů metody HTTP (Get, Post, Put, Delete atd.), jak je vidět v kódu níže.
Nestjs využívá dekoratérský přístup a je většinou vyvíjen v Typescript, i když také podporuje JavaScript. K ověření těla požadavku můžete také použít validátor třídy.
Právě vytvořím instanci serveru Nestjs a globálně přidám ValidationPipe. Trubky jsou pouze metody, které se spouštějí před řadiči. Trubky lze také aplikovat na úrovni metody/argumentu pomocí dekorátoru @UsePipes.
3. Poskytovatelé
Poskytovatelé jsou další kritickou součástí Nestjs. Zdaleka jsem ukládal data do dočasné proměnné. To je důvod, proč lze tak jednoduchý úkol provést pomocí ovladačů Controller.
Pro větší a komplikovanější logiku by však bylo oddělení kódu a opětovné použití obtížné. To je, když přicházejí dodavatelé. Můžete deklarovat/vytvořit poskytovatele na vrcholu třídy pomocí @Injectable decorator. Poté můžete pomocí poskytovatelů provádět vkládání závislostí, protokolování a další úkoly.
4. Moduly
Moduly Nestjs nejsou globální; místo toho mají hloubku.
Lze jej však sdílet i s jinými moduly. Ačkoli, stejně jako Angular, nabízí globální moduly, je vhodnější ponechat služby/řadiče v modulu, kde se v Nestjs nejčastěji používají.
NestCLI se většinu času používá k výrobě modulů a poskytovatelé/řadiče generované v kontextu tohoto modulu jsou automaticky přidávány pomocí CLI. Tyto jsou známé jako moduly funkcí.
5. Filtry výjimek
Filtry výjimek jsou obslužné rutiny chyb, které se vyvolávají, když řadič vyvolá výjimku. Automaticky řeší problém a poskytuje vhodnou, uživatelsky přívětivou chybovou zprávu.
Mnoho zděděných výjimek HttpException poskytuje balíček @nestjs/common, včetně NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException a mnoha dalších. Můžete si dokonce navrhnout svůj vlastní ExceptionFilter.
6. Middleware
Funkce, která je vyvolána před obsluhou trasy, se nazývá middleware. Objekty požadavku a odpovědi, stejně jako funkce middlewaru next() v cyklu žádost-odpověď aplikace, jsou přístupné funkcím middlewaru.
Proměnná nazvaná next se obvykle používá k identifikaci další funkce middlewaru. Vlastní middleware Nest lze implementovat do metody nebo třídy pomocí dekorátoru @Injectable().
7. Stráže
Stráže jsou zodpovědné jen za jednu věc. Je jejich odpovědností posoudit, zda bude požadavek správcem zpracován či nikoli na základě konkrétních okolností (konkrétně uživatelsky definovaná logika).
Je to užitečné pro ověřování/autorizaci a je to doporučená metoda v Nestjs.
Ačkoli autentizaci/oprávnění atd. lze provést pomocí middlewaru, neprovádí se na expresních nebo jiných HTTP serverech, protože nemají související silný kontext a nemají důvod vědět, která metoda bude použita ke zpracování požadavku.
Výhody
- Rámec je silně závislý na anotacích, které se používají k výrobě čehokoli od koncových bodů po dokumentaci Swagger. Koncové body jsou základní a přehledné a anotace obecně usnadňují vývoj.
- Je snadné externalizovat univerzální moduly a znovu použít kód v mnoha projektech, protože Nest.js je modulový framework.
- Struktura složek Nest.js je výrazně ovlivněna Angularem. Při navrhování služby Nest to umožňuje minimální prostoje.
- Komponenty mají své vlastní adresáře, přičemž kořenový adresář obsahuje aplikační modul a hlavní soubor. Vzhledem k jednoduchosti struktury je možné věnovat více pozornosti návrhu koncových bodů a jejich zákazníkům než struktuře aplikace.
- Nest, stejně jako Angular, nabízí pěkný nástroj příkazového řádku, Nestjs/cli, který je dostupný prostřednictvím Node Package Manager.
Nevýhody
- Nest má výhodu v použití TypeScriptu a Angular integraci, ale chybí mu finanční podpora obrovské korporace.
- Nedostatek dokumentace představuje největší hrozbu pro uživatele Nest. Přestože framework má vynikající interakce s jinými frameworky, dokumentace je řídká a neřeší žádné potenciální potíže.
- Nest má výhodu, pokud jde o použití TypeScript a Angular.
Proč investovat do čističky vzduchu?
NestJS poskytuje vývojářům obrovskou výhodu. Chcete-li zahájit vývoj, vše, co musíte udělat, je vytvořit novou aplikaci a můžete jít. Tento rámec okamžitě poskytuje významnou podporu a zároveň vám pomáhá při provádění dalších fází vytvořením vhodné architektury aplikace.
Využívá nejmodernější metody a technologie k vytváření aplikací, které jsou ovladatelné a mají dlouhou životnost. Lze jej použít k připojení ke GraphQL, WebSockets a vytváření mikroslužeb.
Napsat komentář