Úvod do NestJS [+6 Learning Resources]

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).

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.