NestJS je progresivní framework Node.js pro vytváření škálovatelných, efektivních a spolehlivých aplikací na straně serveru.
NestJS byl vytvořen tak, aby eliminoval neuspořádané kódové základny. Jeho modulární struktura usnadňuje organizaci kódu do různých modulů.
NestJS je postaven na Typescript a používá ExpressJS pod kapotou. NestJS milují vývojáři, kteří chtějí využít možnosti kontroly typu TypeScript. NestJS kombinuje různé aspekty funkčního reaktivního programování (FRP), objektově orientovaného programování (OOP) a funkčního programování (FP).
Table of Contents
Proč NestJS?
NestJS je vhodný pro začátečníky, protože má dobrou strukturu a snadno použitelné nástroje rozhraní příkazového řádku (CLI). Vývojáři tak mohou při použití tohoto rámce Node.js vytvořit novou funkci jediným příkazem.
NestJS poskytuje modul, službu, ovladač a testovací balíček, abyste mohli začít. Můžete se také spolehnout na mnoho dostupných vzorů a šablon, které vám usnadní vývojovou cestu.
Křivka učení pro NestJS bude snadná pro ty, kdo znají smyčky, syntaxi a podmínky v JavaScriptu a Angularu.
Vlastnosti NestJS
Postaveno na Typescriptu
NestJS je postaven na Typescriptu, horním indexu JavaScriptu. Typescript poskytuje lepší vývojový zážitek, protože nemusíte ručně kontrolovat chyby pokaždé, když něco v kódu změníte. Typescript v podstatě nabízí všechny funkce JavaScriptu, ale přichází také s některými přidanými funkcemi.
Závislostní vstřikovací kontejner
Injekce závislostí odděluje inicializaci objektů, které třída používá, od třídy samotné. V takovém případě se třída nazývá „klient“, zatímco závislosti třídy jsou známé jako „služby“. Díky tomuto vestavěnému DI v NestJS jsou aplikace efektivnější a modulárnější.
Výkonné rozhraní příkazového řádku (CLI)
Pomocí NestCLI můžete inicializovat, vyvíjet a udržovat všechny své aplikace NestJS. Pomocí Nest CLI můžete dělat spoustu věcí, jako například;
- Lešení projektu
- Poskytování projektu ve vývojovém režimu
- Sestavte a sbalte aplikaci pro produkční distribuci
Modularizace
Každá aplikace NestJS má alespoň jeden modul. ‚Root‘ modul je nejzákladnější. V typické aplikaci NestJS bude každá logická část aplikace žít ve stejné hranici domény (modulu). Takové nastavení usnadňuje organizaci komponent, kde aplikace bude mít více modulů s úzce související sadou funkcí.
Testování jednotek
Automatizované testování přináší spoustu výhod. Proces nastavování takových testů však může být mnohem náročnější. NestJS má různé funkce, které pomáhají týmům vytvářet a automatizovat testy. Dobrá věc na NestJS je, že jej lze použít s různými testovacími nástroji. Systém vstřikování závislosti Nest je k dispozici během testování, aby bylo možné snadno zesměšňovat komponenty.
Databáze agonistická
Při práci s NestJS se můžete snadno integrovat s jakoukoli SQL nebo NoSQL databází na základě vašich potřeb a preferencí. Připojení NestJS k databázi je velmi jednoduché, stačí totiž nahrát vhodný ovladač Node.js.
Podporujte různé knihovny
NestJS je kompatibilní s různými nástroji, což urychluje vývoj aplikací. Tento rámec podporuje protokolování, ověřování, ukládání do mezipaměti, WebSockets, TypeORM, Mongoose a GraphQL bez další konfigurace.
Architektura a pracovní postup NestJS
NestJS má 3vrstvou architekturu sestávající z řadičů, poskytovatelů a modulů. Vývojáři tak mohou vytvářet čistý kód, který se nepřekrývá.
Zdroj obrázku: betterprogramming
Ovladače
Kontroléry v NestJS slouží jako most mezi požadavky a odpověďmi klientů. Směrovací mechanismus vždy nasměruje požadavek na příslušný řadič, kdykoli je proveden požadavek HTTP. Rámec používá dekorátory a třídy k vytváření ovladačů. Každá metoda třídy je pak mapována na trasy, aby přijala konkrétní požadavek.
Poskytovatelé
Poskytovatele lze popsat jako základy NestJS. Poskytovatelé se vkládají jako závislosti a vytvářejí vztahy mezi různými objekty. Třídy v NestJS, jako jsou pomocníci, služby nebo úložiště, lze po přidání dekorátoru `@Injectable()` považovat za poskytovatele. Takové poskytovatele lze také vložit do třídy prostřednictvím konstruktoru a NestJS vyřeší závislosti.
Moduly
Modul v NestJS spojuje úzce související sadu schopností. Každá aplikace NestJS má jako vstupní bod kořenový modul. Použití více modulů je velmi vhodné, pokud chcete mít organizovaný a snadno čitelný kód. Dekorátor `@Module()` společnosti Nest definuje modul a také poskytuje informace, jako jsou závislosti, řadiče a poskytovatelé, které s tímto modulem souvisí.
Začínáme s NestJS
Ujistěte se, že jsou nainstalovány soubory Node.js a npm. Potřebujete běhové prostředí a Node.js je pro toto nastavení ideální. Potřebujete verzi >= 12, kromě v13. Pomocí těchto příkazů můžete zkontrolovat, zda máte nainstalované soubory Node.js a npm;
node -v
npm -v
Pokud jsou nainstalovány oba, dostanete výstup blízký tomuto
Pokud je nemáte, nainstalujte si je přes oficiální stránku. Naštěstí jsou Node.js i npm nainstalovány společně.
- Nainstalujte Nest CLI. Pomocí následujících příkazů nastavte CLI a projekt;
npm i -g @nestjs/cli
nest new project-name
Pro demonstrační účely zvolíme název projektu jako mynestapp. NestJS vám dává šanci pracovat buď s Typescript nebo Vanilla JavaScript. Vyberte si, co vám vyhovuje, a stiskněte Enter. Jakmile bude aplikace vytvořena, bude nastavena struktura souborů a složka „src“ bude obsahovat několik základních souborů, jak je znázorněno na tomto snímku obrazovky
- Spusťte aplikaci / svůj první ahoj svět
Po dokončení instalace spusťte tyto příkazy pro spuštění vývojového serveru
cd mynestapp
npm run start
Napište do prohlížeče http://localhost:3000/ a mělo by se zobrazit vaše první „Hello World“ na NestJs
NestJS: Výhody
- Jednoduché se naučit. Zvládnout NestJS je snadné, zvláště pokud jste z Angular nebo máte obecné znalosti JavaScriptu. Podrobná dokumentace také usnadňuje zvládnutí práce s tímto výkonným rámcem.
- Flexibilní. Pomocí NestJS můžete postavit spoustu věcí. Pomocí tohoto rámce Node.js můžete vytvářet aplikace MVC, aplikace GraphQL, RESTful API a webové sokety.
- Dodává se s tisíci modulů. Komunitou podporované moduly usnadňují vývojářům strukturovat různé funkce při vytváření aplikací na straně serveru.
- Rychlý vývoj a dobrá architektura. Při práci s NestJS nemusíte vytvářet vše od začátku. Stejný rámec má však pevnou architekturu, která usnadňuje pochopení vašeho kódu.
NestJS: Nevýhody
- Není vhodné pro uživatele s pozadím TypeScript a Angular. NestJS si hodně půjčuje od architektury Angular a těm, kdo takové znalosti nemají, může chvíli trvat, než pochopí syntaxi a strukturu.
- V některých oblastech chybí. NestJS je stále mladý a nemusí konkurovat některým zavedeným frameworkům založeným na Pythonu a GO.
Společnosti používající NestJS
#1. Adidas
Adidas, výrobce a návrhář obuvi, patří mezi společnosti využívající NestJS. Úžasné vlastnosti NestJS musely přitahovat tohoto giganta obuvi, aby jej použil na svém backendu.
#2. Capgemini
Capgemini je francouzská nadnárodní společnost, která nabízí poradenství, technologie, outsourcing a profesionální služby. Tato společnost používá NestJS ve svém technologickém zásobníku.
#3. Roche
Roche je nadnárodní zdravotnická společnost, která má dvě divize; farmacie a diagnostika. Roche používá NestJS jako jeden z technologických zásobníků na svém hlavním webu.
Výukové zdroje
#1. NestJS Zero to Hero
NestJS Zero to Hero učí vývojáře, jak vytvářet a nasazovat podnikové back-endové aplikace pomocí Typescript a Node.js. Kurz mimo jiné učí, jak vytvářet rozhraní API, autorizaci a ověřování, aplikace Nest pro testování jednotek a TypeORM pro interakci s databázemi.
#2. NestJS: Kompletní příručka pro vývojáře
Tento kurz učí vývojáře, jak vytvářet backendová rozhraní API pomocí Nest, TypeScript a TypeORM. Tento kompletní průvodce obsahuje vše, co potřebujete od nastavení kódování aplikace NestJS, testování a nasazení. Získáte také přehled o zákulisí webového rámce NestJS.
#3. Mistr NestJS
Master NestJS učí, jak vyvíjet aplikace Node.js na podnikové úrovni pomocí TypeScript. Kurz mimo jiné učí validaci a serializaci dat, jak fungují tokeny JWT, jak používat NestCLI a moderní abstrakci databází.
#4. NestJs v praxi (s MongoDB)
NestJS in Practice učí vše, co se potřebujete dozvědět o NestJS, od modulů, ovladačů, GuardsServices, Pipes a Middleware. Kurz využívá projektový přístup, kdy kódujete a hostujete svůj kód na GitHubu se soubory zip ke stažení pro každou sekci.
#5. Nest.js: Progresivní rámec Node.js
Tato kniha představuje vývojářům NestJS a jak využít JavaScript a TypeScript. Kniha byla navržena ve formátu jak na to, aby bylo zajištěno, že můžete svou aplikaci NestJS nastavit a spustit během okamžiku.
#6. Praktické Nest.js: Vyvíjejte čisté webové aplikace MVC
Praktická kniha Nest.js využívá projektový přístup k vytvoření aplikace internetového obchodu, která využívá různé funkce NestJS. Kniha obsahuje krátké diskuze, tipy a užitečné fráze při vytváření aplikace NestJS.
Závěr
Kromě toho, že jde o výkonný rámec Node.js, je NestJS dnes také jedním z nejpopulárnějších frameworků Typescript pro aplikace na straně serveru. Skutečnost, že nabízí osvědčené postupy kódování a standardní vývojovou architekturu, přilákala mnoho inženýrů, kteří se chtějí při vytváření aplikací zaměřit na budování obchodní logiky.