Przejdź do treści

Szkolenie Node.js

Zbudujesz w Node.js serwer z bazą danych, uwierzytelnianiem i testami, gotowy do wdrożenia.

  • Czas trwania: 3 dni
  • Poziom: średniozaawansowany
  • Forma: warsztat dla zespołu
Zapytaj o termin Pobierz program (PDF)

Jeśli piszesz frontend w JavaScript, tym samym językiem i tymi samymi narzędziami zbudujesz serwer. Kłopot w tym, że wiele poradników o Node.js opisuje stan sprzed kilku lat: nodemon, dotenv, ts-node i axios tam, gdzie dziś wystarcza sam Node.js.

Na szkoleniu budujesz jedną aplikację od pustego katalogu: serwer HTTP z bazą danych, logowaniem użytkowników, obsługą błędów i testami, na aktualnym Node.js LTS. Poznasz mechanizmy, które decydują o tym, czy serwer wytrzyma produkcję: event loop, strumienie, logi i łagodne zamykanie.

Program

3 dni

  • Nowoczesny Node.js i projekt w npm
    • Wersje LTS i roczny cykl wydań: którą wersję wybrać do projektu
    • TypeScript bez kompilacji (type stripping): tylko składnia usuwalna, bez enum i parametrów konstruktora jako pól
    • --env-file, --watch, node --run i fetch zamiast paczek
    • Lockfile, npm ci i aktualizacje zależności
  • Jak działa Node.js
    • Moduły ES i CommonJS
    • Event loop: co blokuje serwer i jak to wykryć
    • Promise, async/await i EventEmitter
  • Strumienie i praca z plikami
    • Stream i Buffer: duże pliki bez zapełniania pamięci
    • pipeline i obsługa błędów w strumieniach
    • Ciężkie obliczenia w worker_threads
  • Serwer HTTP
    • node:http bez frameworka
    • Express 5, Fastify i Hono: czym się różnią
    • Routing, middleware i obsługa błędów
    • Walidacja danych wejściowych z Zod
  • Baza danych
    • PostgreSQL przez ORM (Drizzle), zapytania SQL tam, gdzie ORM przeszkadza
    • Migracje schematu i dane testowe
    • Transakcje i pula połączeń
  • Uwierzytelnianie i autoryzacja
    • Sesje w ciasteczkach a tokeny JWT
    • Hasła: wbudowany crypto.argon2, zapis parametrów i soli, porównanie przez timingSafeEqual
    • Role i uprawnienia do zasobów
    • OAuth 2 i OpenID Connect w skrócie
  • Bezpieczeństwo
    • npm audit i ryzyko w zależnościach
    • Limity zapytań i nagłówki bezpieczeństwa
    • Model uprawnień Node.js (--permission): ograniczenie dostępu do plików i procesów
  • Błędy, logi i zamykanie serwera
    • unhandledRejection i uncaughtException: jak na nie reagować
    • Logi strukturalne (pino)
    • Łagodne zamykanie serwera na SIGTERM
    • Debugowanie przez --inspect w edytorze i Chrome DevTools
  • Testowanie
    • Wbudowany runner node:test, mocki i pokrycie kodu
    • Testy jednostkowe i integracyjne
    • Testy API na prawdziwej bazie w kontenerze

Projektowanie API (REST, GraphQL, OpenAPI, webhooki) i OAuth 2 omawiam szerzej na szkoleniu API: REST i GraphQL. Jeśli kupujesz to szkolenie razem z nim i ze szkoleniem Bezpieczeństwo WWW, moduły o uwierzytelnianiu i bezpieczeństwie skracam do przeglądu, a czas oddaję na rozwój projektu.

Dla kogo?

  • Dla programistów frontendu, którzy chcą pisać backend w JavaScript.
  • Dla programistów innych języków, którzy przechodzą na Node.js.
  • Dla zespołów, które utrzymują starszą aplikację w Node.js i chcą ją unowocześnić.

Co musisz umieć?

  • Programować w JavaScript: moduły, klasy, async/await.
  • Pracować z terminalem i Gitem.
  • Znać podstawy SQL (SELECT, INSERT, JOIN).
  • Znać podstawy TypeScriptu (nie są konieczne, ale ułatwią pracę).
  • Uruchamiać kontenery w Dockerze, bo testy korzystają z bazy w kontenerze. Na komputerze potrzebujesz działającego Dockera.

Czego się nauczysz?

  • Uruchomisz projekt w TypeScript i z plikiem .env bez dodatkowych narzędzi.
  • Zrozumiesz event loop i znajdziesz kod, który blokuje serwer.
  • Przetworzysz duży plik strumieniem bez zapełniania pamięci.
  • Wybierzesz framework HTTP i zbudujesz na nim serwer z walidacją danych.
  • Połączysz aplikację z PostgreSQL i napiszesz migracje schematu.
  • Zabezpieczysz aplikację logowaniem, rolami i limitami zapytań.
  • Skonfigurujesz logi i łagodne zamykanie serwera przed wdrożeniem.
  • Przetestujesz aplikację testami jednostkowymi i integracyjnymi w node:test.

Trener

@piecioshka

Piotr Kowalski

W branży IT od 2008 roku. Od 2014 jest mentorem dla wielu developerów. Jako trener spędził na sali szkoleniowej kilka tysięcy godzin, a na LinkedIn ma 52 rekomendacje. Każde jego szkolenie to dawka solidnej wiedzy oraz humoru.

Więcej na stronie "O mnie"

Zorganizujmy to szkolenie w Twoim zespole

Napisz, z czym pracujecie i na jakim poziomie jest grupa. Odpowiem z propozycją programu dopasowanego do Waszego projektu.

Zapytaj o szkolenie Pobierz program (PDF) Zobacz wszystkie szkolenia