Monolit-IT - Baza wiedzy

Baza wiedzy

Nest.js, czyli Angular i Spring na backendzie.

24.06.2020

Jeżeli masz pozytywne doświadczenia ze Springiem w Javie oraz lubisz mechanizm dependency injection, jaki proponuje Angular, wówczas framework Nest.js jest czymś, co powinno cię zainteresować.

Nest.js jest frameworkiem do pisania aplikacji webowych dla node.js. Konstrukcja kodu wzorowana jest na Angularze, czyli mamy tutaj przede wszystkim moduły i serwisy, oraz wstrzykiwanie zależności. I co najważniejsze, aplikację tworzy się w języku TypeScript.

Nest.js jest tym dla JavaScriptu, czym dla Javy jest Spring, czyli dostarcza mechanizmów do tworzenia kontrolerów. Korzysta wówczas z dekoratorów - dla oznaczenia metod obsługujących konkretne metody, czyli np. @Get, @Post itd., oraz dla oznaczenia samych kontrolerów poprzez dekorator @Controller() (parametrem tego dekoratora jest ścieżka do zasobu). Do klas usług, które będą wstrzykiwane, dodajemy z kolei dekorator @Injectable.

Podobnie jak w Angularze mamy również do dyspozycji narzędzie do tworzenia inicjalnego projektu oraz jego poszczególnych składowych (moduł, kontroler, usługa i wiele innych).

Co warte odnotowania, projekt jest rozwijany przez Polaka - Kamila Myśliwca.

Framework korzysta z dobrodziejstw innych bibliotek i frameworków. Przede wszystkim pod maską znajdziemy domyślnie express js jako serwer http. Opcjonalnie można skorzystać z innego silnika - architektura teoretycznie pozwala na podpięcie dowolnego serwera http.

Do autentykacji jest używany popularny framework passport js. W przypadku, gdy do tego celu używamy standardowej metody użytkownik/hasło, jego użycie sprowadza się do napisania usługi i zaimplementowania jednej metody.

W zestawie jest również klient bazy danych wraz z mapowaniem relacji na obiekty - tutaj jest wykorzystywana biblioteka typeorm. Jeżeli ktoś używa MongoDb, to na pokładzie znajdzie również Mongoose.

Framework integruje kilka innych bibliotek oraz dostarcza mechanizmów do realizacji wielu różnych scenariuszy (jak np. mikroserwisy lub graphql). Jest bardzo dobrze udokumentowany - na oficjalnej stronie z dokumentacją przedstawiony jest szczegółowo każdy aspekt tej biblioteki wraz z przykładami. Próg wejścia jest bardzo niski, zwłaszcza jeżeli masz już doświadczenie z technologiami wspomnianymi na wstępie (podobieństwo do Angulara jest wręcz uderzające :-).

Moim zdaniem jest to bardzo udany projekt, który kompleksowo podchodzi do tworzenia backendu korzystając przy tym z wielu sprawdzonych rozwiązań. O jego popularności i dojrzałości niech świadczy to, że na githubie w momencie pisania tych słów projekt ma 23 tysiące gwiazdek. Jeżeli rozważasz tworzenie aplikacji webowej na platformie node.js, to jest to bardzo dobry punkt startu.

Zainteresował Cię ten wpis?
Chcesz dowiedzieć się więcej?

Michał Gierwatowski

Michał Gierwatowski

Programista wszechstronny, od języka Progress4GL począwszy, przez Javę, na TypeScripcie kończąc. Ponad piętnastoletnie doświadczenie w wytwarzaniu różnego rodzaju systemów informatycznych. Ostatnio interesuje się nowinkami w ekosystemie JavaScript/node.js

Michał.Gierwatowski(at)monolit-it.pl

Zobacz wszystkie artykuły danego autora »