Wprowadzenie do NestJS [+6 Learning Resources]

NestJS to progresywna platforma Node.js do budowania skalowalnych, wydajnych i niezawodnych aplikacji po stronie serwera.

NestJS został zbudowany w celu wyeliminowania zdezorganizowanych baz kodu. Jego modułowa struktura ułatwia organizowanie kodu w różne moduły.

NestJS jest zbudowany na TypeScript i używa ExpressJS pod maską. NestJS jest uwielbiany przez programistów, którzy chcą wykorzystać moc sprawdzania typów TypeScript. NestJS łączy różne aspekty funkcjonalnego programowania reaktywnego (FRP), programowania obiektowego (OOP) i programowania funkcjonalnego (FP).

Dlaczego NestJS?

NestJS jest przyjazny dla początkujących, ponieważ ma dobrą strukturę i łatwe w użyciu narzędzia interfejsu wiersza poleceń (CLI). Deweloperzy mogą zatem stworzyć szkielet nowej funkcji za pomocą jednego polecenia, korzystając z tego frameworka Node.js.

NestJS zapewnia moduł, usługę, kontroler i stos testów, które pomogą Ci zacząć. Możesz także skorzystać z wielu gotowych wzorców i szablonów, które ułatwią Ci proces tworzenia.

Krzywa uczenia się NestJS będzie łatwa dla tych, którzy znają pętle, składnię i warunki w JavaScript i Angular.

Cechy NestJS

Zbudowany na maszynopisie

NestJS jest zbudowany na TypeScript, indeksie górnym JavaScript. TypeScript zapewnia lepsze środowisko programistyczne, ponieważ nie musisz ręcznie sprawdzać błędów za każdym razem, gdy coś zmieniasz w kodzie. Typescript zasadniczo oferuje wszystkie funkcje JavaScript, ale zawiera również kilka dodatkowych funkcji.

Kontener iniekcji zależności

Wstrzykiwanie zależności oddziela inicjalizację obiektów używanych przez klasę od samej klasy. W takim przypadku klasa nazywana jest „klientem”, a zależności klasowe nazywane są „usługami”. To wbudowane DI w NestJS sprawia, że ​​aplikacje są bardziej wydajne i modułowe.

Potężny interfejs wiersza poleceń (CLI)

Możesz inicjować, rozwijać i utrzymywać wszystkie swoje aplikacje NestJS za pomocą NestCLI. Istnieje wiele rzeczy, które możesz zrobić za pomocą Nest CLI, na przykład;

  • Rusztowanie projektu
  • Obsługa projektu w trybie deweloperskim
  • Kompiluj i pakuj aplikację do dystrybucji produkcyjnej

Modularyzacja

Każda aplikacja NestJS ma co najmniej jeden moduł. Moduł „root” jest najbardziej podstawowym. W typowej aplikacji NestJS każda logiczna część aplikacji będzie znajdować się w tej samej granicy domeny (module). Takie ustawienie ułatwia organizowanie komponentów, w których aplikacja będzie miała wiele modułów o ściśle powiązanych zestawach możliwości.

Testów jednostkowych

Zautomatyzowane testy mają wiele zalet. Jednak proces ustawiania takich testów może być o wiele bardziej angażujący. NestJS ma różne funkcje, które pomagają zespołom budować i automatyzować testy. Zaletą NestJS jest to, że można go używać z różnymi narzędziami testowymi. System wstrzykiwania zależności Nest jest udostępniany podczas testów w celu łatwego próbowania komponentów.

Agonista bazy danych

Możesz łatwo zintegrować się z dowolną bazą danych SQL lub NoSQL w zależności od potrzeb i preferencji podczas pracy z NestJS. Podłączenie NestJS do bazy danych jest bardzo proste, ponieważ wystarczy załadować odpowiedni sterownik Node.js.

Obsługuje różne biblioteki

NestJS jest kompatybilny z różnymi narzędziami, co przyspiesza tworzenie aplikacji. Ta platforma obsługuje rejestrowanie, sprawdzanie poprawności, buforowanie, WebSockets, TypeORM, Mongoose i GraphQL bez dodatkowej konfiguracji.

Architektura i przepływ pracy NestJS

NestJS ma 3-warstwową architekturę składającą się z kontrolerów, dostawców i modułów. Programiści mogą w ten sposób tworzyć czysty kod, który się nie nakłada.

Źródło obrazu: lepsze programowanie

Kontrolery

Kontrolery w NestJS służą jako pomost między żądaniami i odpowiedziami klientów. Mechanizm routingu zawsze przekieruje żądanie do odpowiedniego kontrolera za każdym razem, gdy zostanie wysłane żądanie HTTP. Framework używa dekoratorów i klas do tworzenia kontrolerów. Każda metoda klasy jest następnie mapowana na trasy w celu odebrania określonego żądania.

Dostawcy

Dostawców można określić jako podstawy NestJS. Dostawcy są wstrzykiwani jako zależności i tworzą relacje między różnymi obiektami. Klasy w NestJS, takie jak helpery, usługi czy repozytoria, mogą być traktowane jako dostawcy po dodaniu dekoratora `@Injectable()`. Takich dostawców można również wstrzyknąć do klasy za pomocą konstruktora, a NestJS rozwiąże zależności.

Moduły

Moduł w NestJS łączy ściśle powiązany zestaw możliwości. Każda aplikacja NestJS ma moduł główny używany jako punkt wejścia. Korzystanie z wielu modułów jest wysoce wskazane, jeśli chcesz mieć uporządkowany i łatwy do odczytania kod. Dekorator `@Module()` Nest definiuje moduł, a także dostarcza informacji, takich jak zależności, kontrolery i dostawcy współpracujący z tym modułem.

Pierwsze kroki z NestJS

Upewnij się, że Node.js i npm są zainstalowane. Potrzebujesz środowiska uruchomieniowego, a Node.js jest idealny do tej konfiguracji. Potrzebujesz wersji >= 12, z wyjątkiem v13. Możesz sprawdzić, czy masz zainstalowane Node.js i npm za pomocą tych poleceń;

node -v
npm -v

Jeśli oba są zainstalowane, otrzymasz wynik zbliżony do tego

Jeśli ich nie masz, zainstaluj je za pośrednictwem oficjalnej strony. Na szczęście zarówno Node.js, jak i npm są instalowane razem.

  • Zainstaluj Nest CLI. Użyj następujących poleceń, aby ustawić CLI i projekt;
npm i -g @nestjs/cli
nest new project-name

Wybieramy nazwę projektu jako mynestapp do celów demonstracyjnych. NestJS daje Ci możliwość pracy z TypeScript lub Vanilla JavaScript. Wybierz to, co Ci odpowiada i naciśnij Enter. Po utworzeniu szkieletu aplikacji struktura plików zostanie skonfigurowana, a folder „src” będzie zawierał kilka podstawowych plików, jak pokazano na tym zrzucie ekranu

  • Uruchom aplikację/swój pierwszy świat hello

Po zakończeniu instalacji uruchom te polecenia, aby uruchomić serwer programistyczny

cd mynestapp
npm run start

Wpisz http://localhost:3000/ w przeglądarce, a Twój pierwszy „Hello World” na NestJs powinien zostać wyświetlony

NestJS: Zalety

  • Łatwe do nauki. Łatwo jest opanować NestJS, zwłaszcza jeśli jesteś z Angular lub ogólnie rozumiesz JavaScript. Szczegółowa dokumentacja ułatwia również opanowanie pracy z tym potężnym frameworkiem.
  • Elastyczne. Możesz zbudować wiele rzeczy za pomocą NestJS. Za pomocą tej platformy Node.js możesz tworzyć aplikacje MVC, aplikacje GraphQL, interfejsy API RESTful i gniazda internetowe.
  • Zawiera tysiące modułów. Moduły obsługiwane przez społeczność ułatwiają programistom tworzenie struktur różnych funkcji podczas tworzenia aplikacji po stronie serwera.
  • Szybki rozwój i dobra architektura. Podczas pracy z NestJS nie musisz tworzyć wszystkiego od zera. Jednak ten sam framework ma solidną architekturę, która ułatwia zrozumienie kodu.

NestJS: Wady

  • Niekorzystne dla osób ze środowiskiem TypeScript i Angular. NestJS wiele zapożycza z architektury Angular, a osoby bez takiej wiedzy mogą potrzebować czasu, aby zrozumieć składnię i strukturę.
  • Brakuje w niektórych obszarach. NestJS jest wciąż młody i może nie konkurować korzystnie z niektórymi uznanymi frameworkami opartymi na Pythonie i GO.

Firmy korzystające z NestJS

# 1. Adidasy

Adidas, producent obuwia i projektant, jest jedną z firm korzystających z NestJS. Niesamowite funkcje NestJS musiały przyciągnąć tego giganta obuwniczego do użycia go na swoim zapleczu.

#2. Capgemini

Capgemini to francuska międzynarodowa firma oferująca doradztwo, technologię, outsourcing i usługi profesjonalne. Ta firma używa NestJS w swoim stosie technologicznym.

#3. Roche’a

Roche to międzynarodowa firma z branży medycznej, która ma dwa oddziały; farmacja i diagnostyka. Roche używa NestJS jako jednego ze stosów technologii na swojej głównej stronie internetowej.

Zasoby edukacyjne

# 1. NestJS od zera do bohatera

NestJS Zero to Hero uczy programistów, jak tworzyć i wdrażać korporacyjne aplikacje zaplecza przy użyciu TypeScript i Node.js. Kurs uczy, między innymi, jak tworzyć interfejsy API, autoryzację i uwierzytelnianie, testy jednostkowe aplikacji Nest i TypeORM do interakcji z bazą danych.

#2. NestJS: kompletny przewodnik dla programistów

Ten kurs uczy programistów, jak tworzyć interfejsy API zaplecza przy użyciu Nest, TypeScript i TypeORM. Ten kompletny przewodnik zawiera wszystko, czego potrzebujesz, od konfiguracji kodowania, testowania i wdrażania aplikacji NestJS. Dostaniesz również zakulisowe zrozumienie frameworka sieciowego NestJS.

#3. Master NestJS

Master NestJS uczy, jak tworzyć aplikacje Node.js klasy korporacyjnej przy użyciu TypeScript. Kurs uczy między innymi sprawdzania poprawności i serializacji danych, działania tokenów JWT, korzystania z NestCLI i nowoczesnej abstrakcji baz danych.

#4. NestJs w praktyce (z MongoDB)

NestJS w praktyce uczy wszystkiego, czego potrzebujesz, aby dowiedzieć się o NestJS, od modułów, kontrolerów, GuardsServices, Pipes i Middleware. Kurs przyjmuje podejście oparte na projekcie, w którym kodujesz i hostujesz swój kod na GitHub z plikami ZIP do pobrania dla każdej sekcji.

#5. Nest.js: progresywny framework Node.js

Ta książka wprowadza programistów do NestJS i pokazuje, jak wykorzystać JavaScript i TypeScript. Książka została zaprojektowana w formacie instruktażowym, aby zapewnić, że możesz skonfigurować i uruchomić aplikację NestJS w krótkim czasie.

#6. Praktyczny Nest.js: Twórz czyste aplikacje internetowe MVC

Praktyczna książka Nest.js wykorzystuje podejście projektowe do stworzenia aplikacji sklepu internetowego, która wykorzystuje różne funkcje NestJS. Książka zawiera krótkie dyskusje, wskazówki i zwroty przydatne podczas tworzenia aplikacji NestJS.

Wniosek

Oprócz tego, że jest potężnym frameworkiem Node.js, NestJS jest również jednym z najpopularniejszych obecnie frameworków TypeScript dla aplikacji serwerowych. Fakt, że oferuje najlepsze praktyki kodowania i standardową architekturę programistyczną, sprawił, że przyciąga wielu inżynierów, którzy chcą skupić się na budowaniu logiki biznesowej podczas tworzenia aplikacji.