Moduł 1 · Pierwsze kroki z Node.js
Czym jest Node.js: V8, pętla zdarzeń i wersje LTS
Po tej lekcji wyjaśnisz, czym jest Node.js, do czego się go używa i którą wersję zainstalować w październiku 2026. Poznasz też przykład, który przeprowadzi Cię przez cały kurs.
Czym jest Node.js
Node.js to środowisko uruchomieniowe JavaScriptu poza przeglądarką. Bierze silnik V8 (ten sam, który wykonuje JavaScript w Google Chrome) i dodaje do niego to, czego przeglądarka nie daje: dostęp do plików, sieci, procesów i zmiennych środowiskowych. Dzięki temu w JavaScripcie napiszesz serwer API, skrypt porządkujący pliki albo narzędzie wiersza poleceń.
Warto rozróżnić trzy rzeczy, które początkujący często mieszają:
- JavaScript to język. Jego standard nazywa się ECMAScript.
- V8 to silnik, który zamienia kod JavaScript na kod maszynowy i go wykonuje.
- Node.js to program
node, który łączy V8 z biblioteką wejścia i wyjścia (libuv) oraz zestawem modułów wbudowanych, takich jaknode:fs(pliki),node:http(serwer) czynode:crypto(kryptografia).
W przeglądarce masz obiekty window i document, bo kod steruje stroną. W Node.js ich nie ma. Zamiast nich masz process (informacje o uruchomionym programie) i moduły wbudowane.
Na podstawie: Introduction to Node.js, nodejs.org, stan na październik 2026.
Jeden wątek i operacje, które nie blokują
Dokumentacja Node.js opisuje go tak: aplikacja działa w jednym procesie i nie tworzy nowego wątku dla każdego żądania. Gdy kod prosi o odczyt pliku albo zapytanie do bazy, Node.js nie czeka bezczynnie. Zleca operację systemowi, obsługuje w tym czasie inne zadania i wraca do wyniku, gdy jest gotowy. Ten mechanizm nazywa się pętlą zdarzeń (event loop) i poświęcimy mu cały moduł 2.
Prosty dowód, że kod nie wykonuje się „od góry do dołu” w każdej sytuacji:
console.log("1: start");
setTimeout(() => console.log("3: po 0 ms"), 0);
console.log("2: koniec kodu synchronicznego");Napis numer 3 pojawi się ostatni, mimo opóźnienia 0 ms. Funkcja przekazana do setTimeout trafia do kolejki i czeka, aż skończy się bieżący kod.
Z tego modelu wynikają mocne i słabe strony. Node.js dobrze radzi sobie z wieloma jednoczesnymi połączeniami, które głównie czekają na sieć lub dysk: API, aplikacje czasu rzeczywistego, mikroserwisy, skrypty automatyzujące. Gorzej znosi długie obliczenia w głównym wątku, bo blokują one wszystko inne. Dokumentacja poświęca temu osobny poradnik „Don't Block the Event Loop”.
Która wersja: LTS i Current
Node.js wydaje nowe główne wersje regularnie. Każda przechodzi fazy: Current (najnowsze funkcje), potem Active LTS i Maintenance LTS (długie wsparcie, tylko poprawki). Do pracy i nauki wybieraj wersję LTS, bo dokumentacja zaleca, by aplikacje produkcyjne używały tylko wydań Active LTS lub Maintenance LTS.
Źródło: harmonogram nodejs/Release (schedule.json), stan na październik 2026.
W tym kursie pracujesz na Node.js 24 LTS. Przykłady sprawdziliśmy też na Node.js 22, więc zadziałają na obu. Od Node.js 27 projekt zmienia zasady: jedna główna wersja rocznie i każda przechodzi do LTS. Dla Ciebie praktyczny wniosek jest prosty: sprawdzaj stronę wydań przed startem nowego projektu i nie zostawaj na wersji, której wsparcie się kończy.
Przykład na cały kurs: piekarnia Kłos z Poznania
Przez wszystkie moduły budujesz oprogramowanie dla fikcyjnej piekarni Kłos, która ma trzy punkty w Poznaniu: Jeżyce, Łazarz i Wilda. Zaczniesz od skryptu liczącego wartość koszyka (np. 2 chleby żytnie po 12,90 zł i 6 kajzerek po 1,10 zł), przejdziesz przez raport sprzedaży z pliku CSV z 240 zamówieniami, a skończysz na API zamówień z testami. Kwoty zapisujemy w groszach jako liczby całkowite, bo w JavaScripcie 0.1 + 0.2 daje 0.30000000000000004. Wrócimy do tego w lekcji o plikach i danych.
Do każdego modułu dostajesz plik ZIP z materiałami: kod startowy, dane i rozwiązania. Wyniki kontrolne (np. przychód z opłaconych zamówień) policzyliśmy niezależnie w Pythonie, więc możesz porównać swój wynik z pewną liczbą.
Najważniejsze w 3 punktach
- Node.js to JavaScript poza przeglądarką: silnik V8, pętla zdarzeń z libuv i moduły wbudowane zamiast
windowidocument. - Jeden wątek obsługuje wiele połączeń, bo operacje na plikach i sieci nie blokują; długie obliczenia już tak.
- Do pracy wybieraj wersję LTS; w październiku 2026 to Node.js 24, a od 28.10.2026 także Node.js 26.
Źródła
- Node.js, Introduction to Node.js, stan na październik 2026: https://nodejs.org/learn/getting-started/introduction-to-nodejs
- Node.js, Node.js Releases (fazy wydań, zalecenie LTS, zmiana harmonogramu od wersji 27), stan na październik 2026: https://nodejs.org/en/about/previous-releases
- Harmonogram wydań nodejs/Release, schedule.json, stan na październik 2026: https://github.com/nodejs/Release
- Node.js, Don't Block the Event Loop (or the Worker Pool), stan na październik 2026: https://nodejs.org/learn/asynchronous-work/dont-block-the-event-loop
- Node.js 24 API, Process (process.version, process.release), stan na październik 2026: https://nodejs.org/docs/latest-v24.x/api/process.html