Definicja #
Node.js to open-source'owe środowisko uruchomieniowe JavaScript stworzone przez Ryana Dahla w 2009 roku. Oparte na silniku V8 (Chrome), Node pozwala wykonywać JavaScript poza przeglądarką — na serwerze, linii poleceń i w skryptach systemowych.
Kluczowe cechy Node.js:
- Nieblokujące I/O — asynchroniczny model oparty na event loop — jeden wątek obsługuje tysiące równoczesnych połączeń
- npm/pnpm/yarn — npm jest największym rejestrem pakietów open-source na świecie (ponad 2 mln pakietów)
- Jeden język full-stack — JavaScript zarówno na frontendzie jak i backendzie
- Streaming — natywne API do przetwarzania strumieniowego danych
- Bogaty ekosystem — Express, Fastify, NestJS (backend frameworks), Webpack, Vite (narzędzia buildowe)
Node.js świetnie sprawdza się w aplikacjach I/O-intensive (API, real-time, microservices), ale nie jest optymalny dla CPU-intensive obliczeń (złożone algorytmy, number crunching), gdzie lepiej sprawdza się Go, Java lub Python.
Zastosowania #
- REST API i GraphQL — szybkie, skalowalne API dla aplikacji mobilnych i webowych
- Real-time — czaty, powiadomienia push, gry multiplayer z WebSockets (Socket.io)
- BFF (Backend for Frontend) — warstwa agregująca dane z mikroserwisów dla konkretnych klientów
- CLI tools i skrypty — narzędzia deweloperskie, bundlery (Webpack, Vite, esbuild)
- Mikroservisy — lekkie serwisy w ekosystemach event-driven z Kafka lub RabbitMQ
Ścieżka nauki #
Przed Node.js opanuj JavaScript (ES6+), szczególnie asynchroniczność: callbacks, Promise, async/await i Event Loop. Podstawy HTTP (metody, nagłówki, statusy) są kluczowe dla budowania API.
Na starcie zacznij od wbudowanych modułów Node (fs, http, path, events), następnie przejdź do Express.js — najprostszego frameworku backendowego. Naucz się obsługi żądań, middleware, routingu i połączenia z bazą danych.
Następnie rozważ NestJS jako framework do budowania skalowalnych API w stylu Angular (TypeScript, DI, dekoratory). Poznaj zarządzanie procesami (PM2), dockeryzację aplikacji Node, monitoring i logging (Winston, Pino). Warto też zgłębić performance profiling i optymalizację event loop dla produkcji.
FAQ #
- Czy Node.js to język programowania?
- Nie — Node.js to środowisko uruchomieniowe (runtime), nie język. Językiem jest JavaScript. Node.js pozwala uruchamiać JavaScript poza przeglądarką, dostarczając API do operacji systemowych (pliki, sieć, procesy).
- Ile zarabia Node.js developer w Polsce?
- Junior Node.js developer zarabia ok. 7 000-12 000 zł brutto, mid 12 000-18 000 zł, senior 18 000-28 000+ zł. Znajomość TypeScript i frameworków jak NestJS znacząco podnosi wartość rynkową.
- Czy Node.js nadaje się do dużych aplikacji?
- Tak, Node.js używają Netflix, LinkedIn, Uber i PayPal. Kluczem jest właściwa architektura (mikroservisy, klastry), unikanie blokowania event loop i dobór odpowiednich narzędzi. Dla CPU-intensive zadań Node nie jest jednak najlepszym wyborem.
- Czym różni się Node.js od Deno i Bun?
- Deno (od twórcy Node.js) naprawia wczesne błędy projektowe: wbudowany TypeScript, bezpieczne uprawnienia, kompatybilność z Web API. Bun to nowe, bardzo szybkie środowisko skupione na wydajności. Node.js ma największy ekosystem i najlepsze wsparcie w produkcji.