Moduł 1 · Wprowadzenie do Node.js
Czym jest Node.js i jak działa
Wyobraź sobie, że JavaScript, który dotychczas działał tylko w przeglądarce, nagle zyskuje supermoc — może zarządzać serwerami, obsługiwać bazy danych i tworzyć kompletne aplikacje backendowe. To właśnie Node.js — środowisko wykonawcze zbudowane na silniku V8 Chrome, które przenosi JavaScript na serwer.
Dlaczego Node.js zmienił sposób tworzenia aplikacji?
W tradycyjnym podejściu programiści musieli znać różne języki: JavaScript do frontendu, PHP/Java/Python do backendu. Node.js eliminuje tę barierę — Netflix używa go do obsługi miliardów żądań miesięcznie, Uber zarządza swoimi mikrousługami, a WhatsApp obsługuje miliardy wiadomości dziennie.
Jak działa Node.js — architektura, która robi różnicę
Event Loop — serce Node.js
Node.js działa na zasadzie jednowątkowego event loop, który może obsłużyć tysiące połączeń jednocześnie. Wyobraź sobie kelnera w restauracji, który zamiast czekać przy każdym stoliku na podanie zamówienia, przyjmuje wszystkie zamówienia i wraca z gotowymi daniami.
// Tradycyjne podejście (blokujące)
const data = readFileSync('huge-file.txt'); // Cały kod czeka na odczyt
console.log('To wykona się dopiero po odczycie pliku');
// Node.js (nieblokujące)
readFile('huge-file.txt', (err, data) => {
console.log('Plik odczytany!');
});
console.log('To wykona się natychmiast'); // Wykona się pierwszy!V8 Engine i libuv — mocy duet
V8 Engine kompiluje JavaScript do kodu maszynowego, osiągając wydajność porównywalną z językami kompilowanymi. libuv to biblioteka C++ odpowiedzialna za operacje asynchroniczne — zarządza systemem plików, siecią i wszystkimi operacjami I/O.
Wskazówka: Node.js idealnie sprawdza się przy operacjach I/O intensywnych (API, bazy danych), ale nie jest najlepszym wyborem do obliczeń procesora intensywnych (np. przetwarzanie obrazów).
Praktyczne przykłady zastosowań Node.js
1. API dla aplikacji mobilnej
Załóżmy, że tworzysz aplikację do zamawiania jedzenia. Node.js pozwoli Ci:
- Obsłużyć tysiące jednoczesnych zamówień
- Integrować się z systemami płatności w czasie rzeczywistym
- Zarządzać powiadomieniami push do dostawców
2. Chat w czasie rzeczywistym
Dzięki WebSocket i bibliotekom jak Socket.IO, możesz stworzyć czat obsługujący 10,000+ użytkowników na jednym serwerze.
3. Mikrousługi w e-commerce
Node.js pozwala podzielić dużą aplikację na małe, niezależne serwisy:
- Serwis użytkowników
- Serwis produktów
- Serwis płatności
- Serwis powiadomień
NPM — potęga ekosystemu
Node.js posiada największy ekosystem bibliotek na świecie — NPM zawiera ponad 2 miliony pakietów. Potrzebujesz walidacji formularzy? validator.js. Obsługę dat? moment.js. Autentykację? passport.js.
npm install express mongoose jsonwebtoken
# Jedną komendą instalujesz framework, driver do MongoDB i obsługę JWTKto używa Node.js w produkcji?
- Netflix: 97% redukcja czasu startowego aplikacji
- PayPal: 2x szybszy czas developmentu niż Java
- LinkedIn: 10x mniej serwerów niż poprzednia architektura
- Walmart: obsługa 500 milionów pageviews miesięcznie
Kiedy wybrać Node.js?
Node.js to idealny wybór gdy:
- Tworzysz aplikacje real-time (czaty, gry, notyfikacje)
- Potrzebujesz szybko prototypować i wdrażać
- Pracujesz z REST API i mikrousługami
- Twój zespół zna już JavaScript
Unikaj Node.js przy:
- Intensywnych obliczeniach matematycznych
- Aplikacjach wymagających ciężkich operacji CPU
Podsumowanie:
- Node.js przenosi JavaScript na serwer używając silnika V8
- Event loop pozwala obsłużyć tysiące połączeń jednocześnie
- Ekosystem NPM oferuje gotowe rozwiązania na każdą potrzebę
- Sprawdza się w aplikacjach real-time i API-centrycznych
- Używają go giganci jak Netflix, PayPal czy LinkedIn