2021-ben a JavaScript volt a legszélesebb körben használt programozási nyelv.
A technológia vonzereje tagadhatatlan, amint azt a JavaScript programozást lehetővé tevő keretrendszerek nagy száma is mutatja.
Az Angular, a React és a Vue van a frontenden, valamint az Express és a Next a háttérben, hogy néhányat említsünk.
Mivel sok csodálatos keretrendszer érhető el a JavaScript-alapú háttérprogramozáshoz, előfordulhat, hogy azon gondolkodik, miért keresnék valami mást, ahelyett, hogy egyszerűen az Expresszt vagy a Nextet használnám.
Talán gyorsan el kell indítania a fejlesztési folyamatot egy tisztességes kazánnal, és nem csak az új vezérlők, hanem a szolgáltatások manuális hozzáadásával is rosszul lesz.
Vagy nagyméretű, méretezhető szoftvert szeretne létrehozni, amely egyszerűen kezelhető. Vagy egyszerűen csak hatékonyabban és kényelmesebben szeretne dolgozni.
Függetlenül attól, hogy az Ön körülményei között melyik igaz, a Nest.js tökéletes megoldás lehet az Ön igényeire.
Ez a bejegyzés a NestJS betekintést és gyakorlati tapasztalatokat nyújt.
Mi az a NestJS?
NestJS egy progresszív Node keretrendszer, amely nyílt forráskódú, bővíthető és adaptálható .Js keretrendszer háttérrendszerek építésére, bevonására és kihívásaira. Jelenleg ez a csomópont a leggyorsabb növekedési ütemmel.
TypeScript keretrendszer js-hez. A NestJS-t olyan alkalmazások létrehozására használják, amelyek méretezhetők, tesztelhetők és lazán csatlakoztathatók.
Ez növeli a Node méretezhetőségét. A Js szerverek teljesen új szintre kerültek. A támogatott adatbázisok közé tartozik a PostgreSQL, a MongoDB és a MySQL.
A NestJS bővíthető, mert más könyvtárakkal is használható; rugalmas alkalmazkodó, teljes értékű ökoszisztémája miatt. És progresszív, mivel támogatja a JavaScript funkciókat és tervezési elveket.
Elsősorban az Angular, a React és a Vue befolyásolja, és beépített függőségi injekcióval érkezik.
Jellemzők
- Használata, megtanulása és elsajátítása egyszerű.
- Ingyenes és nyílt forráskódú (MIT licenc)
- Erőteljes parancssori interfész (CLI) a nagyobb termelékenység és a fejlesztés egyszerűsége érdekében
- Egyszerűen használható egységtesztelő programok
- A TypeScript egy szigorúan beírt nyelv, amely a JavaScript szuperkészlete.
- Aktív kódbázis fejlesztése és karbantartása.
- Több száz fészek-specifikus modul támogatása, amelyek egyszerűvé teszik az olyan népszerű technológiákkal és ötletekkel való interfészt, mint a TypeORM, Mongoose, GraphQL, naplózás, érvényesítés, gyorsítótár, WebSockets stb.
Melyek a NestJS építőkövei?
Az alábbiakban felsoroljuk a Nest alkalmazások építőelemeit; vannak mások is, de ez a három a legjelentősebb. Nézzük meg őket gyorsan.
1. Vezérlők
Az adatkezelők feladata a beérkező kérések feldolgozása és az ügyfeleknek való válaszadás. Bizonyos HTTP-kéréseket kap, és az útválasztó rendszer meghatározza, hogy melyik vezérlő melyik kérést kapja.
Ezután elkészíti a megfelelő választ a kiküldésre. Osztályok és dekorátorok segítségével egy egyszerű gyűjtő épül fel, és minden vezérlőnek saját útvonala van a különféle feladatok elvégzéséhez.
2. Szolgáltatók
A szolgáltatók kulcsfontosságúak a Nestben. A Nest alapvető osztályai közül sok – szolgáltatások, adattárak, gyárak, segítők stb. – kezelhető szolgáltatóként.
A szolgáltató alapgondolata az, hogy függőségként beadható; ez azt jelenti, hogy az objektumok különféle asszociációkat hozhatnak létre egymással, és az objektumok példányainak „bekötése” főként a Nest futásidejű rendszerre ruházható ki.
3. modulok
A modul egy osztály a @Module() dekorátorral, amely rendszerezi az alkalmazás szerkezetének összetevőit. Minden alkalmazásnak van egy gyökérmodulja, amelyet az alkalmazásgráf felépítésére használnak, amely tovább oldja a szolgáltató és a modul közötti függőséget és interakciókat.
Ez a dekorátor metaadatokat ad a Nest.js-nek, hogy azonosítsa, mely összetevők, vezérlők vagy egyéb erőforrások kerülnek felhasználásra az alkalmazáskódban, és egyesítsék őket egyetlen készletben.
Minden modul rendelkezik olyan képességek gyűjteményével, amelyek valamilyen módon kapcsolódnak egymáshoz.
A NestJS használatának megkezdése
1. Telepítés
Telepítsük a NestJS-t, és készítsünk vele egy projektet az alábbi lépések végrehajtásával:
Ennek eredményeként a következő könyvtárstruktúra jön létre:
2. Vezérlők
A Nest építőelemei a vezérlők. Ezek azok a helyek, ahol a bejövő kéréseket kezelik. Megadhatja az útvonalat a HTTP metódusmódosítók (Get, Post, Put, Delete stb.) dekorátorokkal, ahogy az alábbi kódban is látható.
A Nestjs a dekorátor megközelítést alkalmazza, és többnyire Typescriptben fejlesztették ki, bár támogatja a JavaScriptet is. A kérés törzsének érvényesítéséhez osztályellenőrzőt is használhat.
Most készítek egy Nestjs szerverpéldányt, és globálisan hozzáadom a ValidationPipe-ot. A csövek csak metódusok, amelyek a vezérlők előtt futnak le. A csövek módszer/argumentum szinten is alkalmazhatók a @UsePipes dekorátor segítségével.
3. Szolgáltatók
A szolgáltatók a Nestjs másik fontos összetevője. Eddig egy ideiglenes változóban tároltam az adatokat. Ez az oka annak, hogy egy ilyen egyszerű feladat végrehajtható a Controller kezelőkkel.
Nagyobb, bonyolultabb logika esetén azonban a kódok szétválasztása és újrafelhasználása nehézkes lenne. Ekkor lépnek be a beszállítók. Az @Injectable dekorátor használatával deklarálhat/létrehozhat egy szolgáltatót egy osztály tetején. Ezután a szolgáltatók használatával függőségi injekciót, naplózást és egyéb feladatokat hajthat végre.
4. modulok
A Nestjs modulok nem globálisak; ehelyett mélységük van.
Ugyanakkor megosztható bármely más modullal is. Bár az Angularhoz hasonlóan globális modulokat is kínál, tanácsosabb a szolgáltatásokat/vezérlőket abban a modulban tartani, ahol a Nestjs-ben leggyakrabban használják őket.
A NestCLI-t legtöbbször modulok előállítására használják, és a CLI automatikusan hozzáadja az adott modul környezetében generált szolgáltatókat/vezérlőket. Ezeket jellemző moduloknak nevezzük.
5. Kivételszűrők
A kivételszűrők olyan hibakezelők, amelyeket akkor hívnak meg, ha a vezérlő kivételt dob. Automatikusan kezeli a problémát, és megfelelő, felhasználóbarát hibaüzenetet küld.
Számos HttpException öröklött kivételt biztosít a @nestjs/common csomag, beleértve a NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException és sok mást. Akár saját kivételszűrőt is megtervezhet.
6. Középprogram
Az útvonalkezelő előtt meghívott függvényt köztes szoftvernek nevezzük. A kérés és válasz objektumok, valamint a next() middleware függvény az alkalmazás kérés-válasz ciklusában elérhetők a köztes szoftver funkciók számára.
A next nevű változót általában a következő köztes szoftver funkció azonosítására használják. Az egyéni Nest köztes szoftver az @Injectable() dekorátor használatával metódusban vagy osztályban implementálható.
7. Őrök
Az őrök csak egy dologért felelősek. Az ő felelősségük annak megítélése, hogy az adatkezelő konkrét körülmények (konkrétan a felhasználó által definiált logika) alapján feldolgozza-e a kérelmet vagy sem.
Hasznos a hitelesítéshez/engedélyezéshez, és ez a javasolt módszer a Nestjs-ben.
Bár a hitelesítés/engedélyek stb. elvégezhetők köztes szoftverrel, expressz vagy más HTTP-kiszolgálókon ez nem történik meg, mivel nem rendelkeznek erős kontextussal, és nincs okuk tudni, hogy melyik módszert fogják használni a kérés feldolgozásához.
Előnyök
- A keretrendszer nagymértékben támaszkodik a megjegyzésekre, amelyeket a végpontoktól a Swagger-dokumentációig bármi létrehozására használnak. A végpontok alapvetőek és rendezettek, a megjegyzések pedig általában megkönnyítik a fejlesztést.
- Egyszerű az általános célú modulok külső felhasználása és a kód újrafelhasználása számos projektben, mivel a Nest.js egy modulalapú keretrendszer.
- A Nest.js mappaszerkezetét jelentősen befolyásolja az Angular. A Nest-szolgáltatás tervezésekor ez minimális állásidőt tesz lehetővé.
- Az összetevőknek saját könyvtáruk van, a gyökérben az alkalmazásmodul és a főfájl található. A szerkezet egyszerűsége miatt nagyobb figyelmet lehet fordítani a végpontok és ügyfeleik tervezésére, nem pedig az alkalmazás szerkezetére.
- A Nest az Angularhoz hasonlóan egy szép parancssori eszközt kínál, a Nestjs/cli-t, amely a Node Package Manageren keresztül érhető el.
Hátrányok
- A Nest előnye van a TypeScript használat és az Angular integráció terén, de hiányzik belőle egy hatalmas vállalat anyagi támogatása.
- A dokumentáció hiánya jelenti a legnagyobb veszélyt a Nest-felhasználók számára. Bár a keretrendszer kiváló kölcsönhatásban van más keretrendszerekkel, a dokumentáció ritka, és nem foglalkozik az esetleges nehézségekkel.
- A Nest előnye van a TypeScript-használat és az Angular tekintetében.
Következtetés
A NestJS hatalmas előnyt nyújt a fejlesztőknek. A fejlesztés megkezdéséhez mindössze annyit kell tennie hozzon létre egy új alkalmazást és már indulhatsz is. Ez a keretrendszer azonnal jelentős lökést ad, miközben egy megfelelő alkalmazásarchitektúra létrehozásával további lépések megtételében is segít.
A legkorszerűbb módszereket és technológiát alkalmazza olyan alkalmazások előállításához, amelyek egyszerre kezelhetők és hosszú élettartamúak. Használható GraphQL-hez, WebSockets-hez való csatlakozáshoz és mikroszolgáltatások létrehozásához.
Hagy egy Válaszol