Kod: WEB-017
Czas trwania: 12 godzin
Czas trwania: 12 godzin
Opis szkolenia
Kurs obejmuje wszystkie niezbędne informacje dotyczące Node.JS: Menedżer pakietów NPM, framework Express (routing, silnik szablonów Pug, oprogramowanie pośredniczące), metoda REST, praca asynchroniczna z NodeJS API, praca z systemem plików, podstawowe koncepcje MongoDb i jak ją wykorzystywać z poziomu aplikacji Node.JS. Kurs obejmuje także zaawansowane tematy, takie jak pętla zdarzeń NodeJS, timery, emitery zdarzeń, wykorzystanie strumieni Node, wykorzystanie Kafki do wymiany komunikatów, protokół WebSocket, wdrażanie i monitorowanie aplikacji Node w trybie klastra.W trakcie kursu uczestnicy zbudują prawdziwą aplikację webową z REST API, która przechowuje dane w sesji, plikach i bazie MongoDb (zapewniony będzie frontowy UI).
Kurs obejmuje rozwiązywanie zadań krok po kroku, jak również dodatkowe zadania w celu zdobycia doświadczenia praktycznego.
Kurs jest przeznaczony dla web developerów (React/Angular/Vue) oraz backend developerów. Wymagana jest podstawowa znajomość JavaScript.
Plan szkolenia
NodeJS basics- Czym jest Node.JS?
- Funkcje Node.JS
- Wielowątkowe przetwarzanie żądań serwera
- Przetwarzanie żądań Node.JS z pętlą zdarzeń
- Menedżer pakietów NPM
o package.json
o package-lock.json
o Katalogi NPM
o Wersjonowanie semantyczne w NPM
o Polecenia NPM
o Nodemon
- Systemy modułowe CommonJS i ES2015
- Prosty serwer http
- Prosty serwer http zwracający JSON
Framework Express
- Zminimalizowana aplikacja Express
- Wzorzec MVC
- Routing w Express
o Parametry żądania
o Kwerenda żądania
o App.route()
o Definiowanie routingu w osobnym module
o Metody odpowiedzi
- Silnik szablonów Pug
o Warunki i zmienne
o Each
o Dziedziczenie szablonów
o Dodawanie/dołączanie bloków
o Mixiny
- Oprogramowanie pośredniczące
o Jak stworzyć własne oprogramowanie pośredniczące (przykład z rejestrowaniem)
o Oprogramowanie pośredniczące do pracy z sesjami
o Body-parser obsługujący parsowanie żądań POST
o Struktura Express z oprogramowaniem pośredniczącym
o Oprogramowanie pośredniczące do obsługi plików statycznych
o Ograniczenie oprogramowania pośredniczącego do trasy
o Kolejność wywołań oprogramowania pośredniczącego
- Ekspres w praktyce
- Metoda Rest
o Wzorzec MVC z serwerem REST
o Żądania REST w celu uzyskania danych
o Tworzenie danych w REST
o Aktualizacja i usuwanie danych w REST
o Zwracanie formatu danych, nagłówków Content-Type i Accept
o Podsumowanie i przypadki użycia REST API
o Bezstanowość a stanowość REST
o Bezstanowość a skalowalność REST
o Bezstanowość a niezawodność REST
- Wykorzystanie frameworka Express do tworzenia usług REST
- Obsługa błędów we frameworku Express
o Domyślny program obsługi błędów
o Własna klasa błędów
- Ćwiczenia: Wdrożenie usługi REST (utrzymanie danych w sesji) [2h]
Składnia async/await. Praca z systemem plików.
- Składnia async/await.
o Składnia async/await i wykonywanie równoległe
o Przetwarzanie wyjątków za pomocą Async/await
o Pętle z async/await
o Async/await w Expressie
- Praca z plikami
o Zapisywanie do pliku
o Odczytywanie pliku z użyciem składni async/await
o Niskopoziomowa praca z plikami
o Obsługa wyjątków wywołań synchronicznych
o Obsługa wyjątków wywołań asynchronicznych
o Wyświetlanie listy plików w folderze
• Ćwiczenie: Wdrożenie usługi REST (utrzymanie danych w plikach)
Korzystanie z MongoDb w NodeJS
- Czym jest MongoDb
- Do czego można wykorzystać MongoDb?
- Niedopasowanie impedancji (obiektowej vs. relacyjnej)
- Brak niedopasowania impedancji z MongoDb
- MongoDb vs. relacyjna baza danych
o Wstawianie dokumentów do kolekcji MongoDb
o Problem: powolne wyszukiwanie w kolekcjach
o Rozwiązanie: budowanie indeksów
- Znajdowanie dokumentów w MongoDb
o Znajdź: zapytania
o Znajdź: projekcje
o Znajdź: kursory
o Jak zaimplementować stronicowanie
- Aktualizacja dokumentów w MongoDb
o Aktualizuj: zastępowanie dokumentu
o Aktualizuj: zmiana tylko części dokumentu przy pomocy operatorów
- Korzystanie z MongoDb z NodeJS
o Łączenie się z MongoDb z serwera NodeJS
o Odczytywanie danych z MongoDb przy pomocy frameworka Express
o Zapisywanie danych do MongoDb przy pomocy frameworka Express
o Usuwanie/aktualizowanie danych przy pomocy frameworka Express
- Ćwiczenie: Wdrożenie usługi REST (utrzymanie danych w MongoDb)
Zaawansowane tematy w zakresie NodeJS
- Pętla zdarzeń węzła i timery
o Set immediate
o Process nextTick
o Unref i clearInterval
o Pogłębiona analiza pętli zdarzeń węzła
o Timery
- Emiter zdarzeń węzła
- Strumienie węzłów
o Strumienie plików
o Strumienie czytelne i zapisywalne
o Tworzenie dużych plików przy użyciu strumieni
o Tworzenie zapisywalnego strumienia i przetwarzanie danych w strumieniu
o Tworzenie serwera przy użyciu Stream API
o Typy strumieni w Node.JS
o Zdarzenia strumienia
o Przekształcanie strumieni
o Wykorzystywanie potoków do przetwarzania danych
o Przykłady
- Przesyłanie strumieniowe w Express
o Przesyłanie strumieniowe w Express
o Przesyłanie strumieniowe w Express w oparciu o Emiter zdarzeń
o Przesyłanie strumieniowe w Express podczas przesyłania dużej ilości danych
o Przykłady
- Kafka
o Omówienie architektury Kafki
o Producent Kafki z użyciem Kafka.js
o Konsument Kafki z użyciem Kafka.js
o Przykłady
- Protokół WebSocket
o Czym jest protokół WebSocket?
o W jakich przypadkach potrzebny jest protokół WebSocket?
o WebSocket po stronie serwera z NodeJS
o WebSocket po stronie klienta
o Aplikacja demonstracyjna
- Wdrożenie klastra węzłowego
o Serwer węzłowy bez obsługi klastra
o Serwer węzłowy z obsługą klastra
o Moduł klastra węzłowego
o Klaster węzłowy z PM2
o Awaria serwera węzłowego
o Automatyczny restart przy awarii serwera z PM2
o Monitorowanie serwera PM2
o Klaster Express klaster z sesjami współdzielonymi (z mem-cached)
o Zbieranie i analiza logów w trybie klastrowym
o Benchmarki i testy obciążeniowe wdrożeń NodeJS w trybie pojedynczym i klastrowym
o Przykłady