W 2021 roku JavaScript był najczęściej używanym językiem programowania.
Atrakcyjność tej technologii jest niezaprzeczalna, o czym świadczy ogromna liczba frameworków, które umożliwiają programowanie w JavaScript.
Na froncie są Angular, React i Vue, a na backendzie Express i Next, żeby wymienić tylko kilka.
Mając do dyspozycji tak wiele wspaniałych frameworków do programowania backendu w JavaScript, być może zastanawiasz się, dlaczego miałbym szukać czegoś innego niż po prostu używać Express lub Next.
Być może musisz szybko rozpocząć proces rozwoju z porządnym szablonem, a ręczne dodawanie nie tylko nowych kontrolerów, ale także usług przyprawia cię o mdłości.
Lub chcesz stworzyć duże, skalowalne oprogramowanie, które jest proste w zarządzaniu. A może po prostu chcesz pracować wydajniej i wygodniej.
Niezależnie od tego, co jest prawdą w Twojej sytuacji, Nest.js może być idealnym rozwiązaniem dla Twoich potrzeb.
W tym poście znajdziesz informacje o NestJS oraz praktyczne doświadczenia.
Co to jest NestJS?
NestJS to progresywna platforma Node, która jest open-source, rozszerzalna i dostosowana .Js ramy do budowania, angażowania i rzucania wyzwań systemom zaplecza. Jest to teraz Węzeł o najszybszym tempie wzrostu.
Framework TypeScript dla js. NestJS służy do tworzenia skalowalnych, testowalnych i luźno powiązanych aplikacji.
Dodaje skalowalność do Node. Serwery Js zostały przeniesione na zupełnie nowy poziom. Obsługiwane bazy danych to PostgreSQL, MongoDB i MySQL.
NestJS jest rozszerzalny, ponieważ może być używany z innymi bibliotekami; elastyczny ze względu na elastyczny, w pełni rozwinięty ekosystem. I progresywny, ponieważ obsługuje funkcje JavaScript i zasady projektowania.
Ma na to wpływ przede wszystkim Angular, React i Vue i ma wbudowane wstrzykiwanie zależności.
Korzyści
- Jest prosty w użyciu, nauce i opanowaniu.
- To nic nie kosztuje i open-source (licencja MIT)
- Potężny interfejs wiersza poleceń (CLI) dla zwiększenia produktywności i prostoty programowania
- Programy do testów jednostkowych, które są proste w użyciu
- Używany jest TypeScript, ściśle typowany język, który jest nadzbiorem JavaScript.
- Rozwój i utrzymanie aktywnej bazy kodów.
- Obsługa setek modułów specyficznych dla gniazd, które ułatwiają interfejs z popularnymi technologiami i pomysłami, takimi jak TypeORM, Mongoose, GraphQL, rejestrowanie, sprawdzanie poprawności, buforowanie, WebSockets i inne.
Jakie są elementy składowe NestJS?
Elementy składowe aplikacji Nest są wymienione poniżej; są jeszcze inne, ale te trzy są najważniejsze. Przyjrzyjmy się im szybko.
1. Kontrolery
Administratorzy są odpowiedzialni za przetwarzanie przychodzących żądań i odpowiadanie klientom. Otrzymuje określone żądania HTTP, a system routingu określa, który kontroler otrzyma które żądanie.
Następnie przygotowuje odpowiednią odpowiedź do wysłania. Przy pomocy klas i dekoratorów budowany jest prosty kolektor, a każdy kontroler ma swój własny zestaw tras do wykonywania różnych zadań.
2. Dostawcy
Dostawcy są kluczową ideą w Nest. Wiele podstawowych klas Nest — usług, repozytoriów, fabryk, pomocników itd. — może być obsługiwanych jako dostawcy.
Podstawowym założeniem dostawcy jest to, że można go wstrzyknąć jako zależność; oznacza to, że obiekty mogą tworzyć różne skojarzenia między sobą, a rolę „okablowania” instancji obiektów można głównie zlecić systemowi wykonawczemu Nest.
3. Moduły
Moduł to klasa z dekoratorem @Module(), która organizuje komponenty struktury aplikacji. Każda aplikacja ma moduł główny, który jest wykorzystywany do konstruowania grafu aplikacji, który dodatkowo rozwiązuje zależności i interakcje między dostawcą a modułem.
Ten dekorator przekazuje metadane do Nest.js w celu zidentyfikowania, które komponenty, kontrolery lub inne zasoby zostaną wykorzystane w kodzie aplikacji i połączenia ich w jeden zestaw.
Każdy moduł ma zbiór możliwości, które są w jakiś sposób połączone.
Pierwsze kroki z NestJS
1. Instalacja
Zainstalujmy NestJS i utwórzmy z nim projekt, wykonując następujące kroki:
W wyniku tego zostanie utworzona następująca struktura katalogów:
2. Kontrolery
Elementami budulcowymi Nest są kontrolery. Są to lokalizacje, w których będą obsługiwane żądania przychodzące. Ścieżkę trasy można określić za pomocą modyfikatorów metod HTTP (Get, Post, Put, Delete itd.), jak pokazano w poniższym kodzie.
Nestjs wykorzystuje podejście dekoratora i jest rozwijany głównie w TypeScript, chociaż obsługuje również JavaScript. Możesz także użyć walidatora klas, aby zweryfikować treść żądania.
Zamierzam po prostu stworzyć instancję serwera Nestjs i globalnie dodać ValidationPipe. Potoki to tylko metody wykonywane przed kontrolerami. Potoki można również zastosować na poziomie metody/argumentu za pomocą dekoratora @UsePipes.
3. Dostawcy
Dostawcy to kolejny krytyczny element Nestjs. Do tej pory przechowywałem dane w zmiennej tymczasowej. Dlatego tak proste zadanie można wykonać za pomocą procedur obsługi kontrolera.
Jednak w przypadku większej, bardziej skomplikowanej logiki separacja kodu i ponowne użycie byłyby trudne. W tym momencie pojawiają się dostawcy. Możesz zadeklarować/utworzyć dostawcę na szczycie klasy, używając dekoratora @Injectable. Następnie za pomocą dostawców można wykonywać wstrzykiwanie zależności, rejestrowanie i inne zadania.
4. Moduły
Moduły Nestjs nie są globalne; zamiast tego mają głębię.
Można go jednak udostępniać również innym modułom. Chociaż, podobnie jak Angular, oferuje moduły globalne, bardziej wskazane jest trzymanie usług/kontrolerów w module, w którym są najczęściej używane w Nestjs.
NestCLI jest używany przez większość czasu do tworzenia modułów, a dostawcy/kontrolery generowane w kontekście tego modułu są automatycznie dodawane przez CLI. Są one znane jako moduły funkcji.
5. Filtry wyjątków
Filtry wyjątków to procedury obsługi błędów, które są wywoływane, gdy kontroler zgłasza wyjątek. Automatycznie zarządza problemem i wyświetla odpowiedni, przyjazny dla użytkownika komunikat o błędzie.
Pakiet @nestjs/common zawiera wiele dziedziczonych wyjątków HttpException, w tym NotFoundException, BadRequestException, NotAcceptableException, UnauthorizedException i wiele innych. Możesz nawet zaprojektować własny filtr wyjątków.
6. Oprogramowanie pośredniczące
Funkcja, która jest wywoływana przed procedurą obsługi trasy, nazywana jest oprogramowaniem pośredniczącym. Obiekty żądania i odpowiedzi, a także funkcja oprogramowania pośredniego next() w cyklu żądanie-odpowiedź aplikacji są dostępne dla funkcji oprogramowania pośredniego.
Zmienna o nazwie next jest zwykle używana do identyfikacji następnej funkcji oprogramowania pośredniego. Oprogramowanie pośredniczące Custom Nest można zaimplementować w metodzie lub klasie przy użyciu dekoratora @Injectable().
7. Strażnicy
Strażnicy są odpowiedzialni tylko za jedną rzecz. Do ich obowiązków należy ocena, czy żądanie zostanie przetworzone przez administratora w oparciu o określone okoliczności (w szczególności logikę zdefiniowaną przez użytkownika).
Jest to pomocne przy uwierzytelnianiu/autoryzacji i jest zalecaną metodą w Nestjs.
Chociaż uwierzytelnianie/uprawnienia itp. Można wykonać za pomocą oprogramowania pośredniego, nie jest to wykonywane na serwerach ekspresowych lub innych serwerach HTTP, ponieważ nie mają one powiązanego silnego kontekstu i nie mają powodu, aby wiedzieć, która metoda zostanie użyta do przetworzenia żądania.
Zalety
- Framework jest w dużym stopniu uzależniony od adnotacji, które służą do tworzenia wszystkiego, od punktów końcowych po dokumentację Swaggera. Punkty końcowe są proste i uporządkowane, a adnotacje ogólnie ułatwiają programowanie.
- Łatwo jest uzewnętrznić moduły ogólnego przeznaczenia i ponownie wykorzystać kod w wielu projektach, ponieważ Nest.js jest frameworkiem opartym na modułach.
- Angular ma znaczący wpływ na strukturę folderów Nest.js. Podczas projektowania usługi Nest pozwala to na zminimalizowanie przestojów.
- Komponenty mają swoje własne katalogi, w których katalog główny zawiera moduł aplikacji i plik główny. Ze względu na prostotę struktury więcej uwagi można poświęcić projektowi punktów końcowych i ich klientom niż strukturze aplikacji.
- Nest, podobnie jak Angular, oferuje ładne narzędzie wiersza poleceń, Nestjs/cli, które jest dostępne za pośrednictwem Node Package Manager.
Niedogodności
- Nest ma przewagę pod względem użycia TypeScript i integracji Angular, ale brakuje mu wsparcia finansowego ogromnej korporacji.
- Brak dokumentacji stanowi największe zagrożenie dla użytkowników Nest. Chociaż framework ma doskonałe interakcje z innymi frameworkami, dokumentacja jest skąpa i nie rozwiązuje żadnych potencjalnych problemów.
- Nest ma przewagę pod względem użycia TypeScript i Angular.
Wnioski
NestJS zapewnia programistom ogromną przewagę. Aby rozpocząć rozwój, wszystko, co musisz zrobić, to utwórz nową aplikację i możesz iść. Ta struktura zapewnia natychmiastowy znaczny wzrost, a także pomaga w podejmowaniu dodatkowych etapów poprzez ustanowienie odpowiedniej architektury aplikacji.
Wykorzystuje najnowocześniejsze metody i technologie do tworzenia aplikacji, które są zarówno łatwe w zarządzaniu, jak i trwałe. Może być używany do łączenia się z GraphQL, WebSockets i konstruowania mikrousług.
Dodaj komentarz