====== Node.js ======
Node.js je open-source běhové prostředí (runtime environment), které umožňuje spouštět jazyk JavaScript mimo webový prohlížeč. Bylo vytvořeno v roce 2009 vývojářem Ryan Dahl a je postaveno na JavaScriptovém enginu V8, který vyvíjí Google.
Node.js se používá především pro vývoj serverových aplikací, API, síťových služeb, nástrojů příkazové řádky a aplikací pracujících v reálném čase.
===== Historie =====
První verze Node.js byla vydána v roce 2009. Jeho hlavním cílem bylo umožnit vývojářům používat JavaScript nejen v prohlížeči, ale také na serveru.
Projekt je dnes spravován organizací OpenJS Foundation a patří mezi nejpoužívanější technologie pro backendový vývoj.
===== Jak Node.js funguje =====
Node.js využívá:
JavaScript Engine V8
Event Loop
Asynchronní I/O operace
Event-Driven Programming
Na rozdíl od tradičních serverových technologií nevytváří nové vlákno pro každý požadavek. Místo toho používá událostní model a neblokující operace.
Klientský požadavek ↓ Event Loop ↓ Asynchronní zpracování ↓ Odeslání odpovědi
Tento přístup umožňuje efektivně obsluhovat velké množství současných připojení.
===== Vlastnosti =====
Open-source software.
Vysoký výkon díky enginu V8.
Podpora asynchronního programování.
Velké množství dostupných knihoven.
Podpora multiplatformního provozu.
Aktivní komunita vývojářů.
===== NPM =====
Součástí Node.js je NPM (Node Package Manager), největší repozitář JavaScriptových balíčků na světě.
Pomocí NPM lze snadno instalovat knihovny a nástroje:
npm install express
===== Jednoduchý příklad =====
HTTP server v Node.js:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200);
res.end('Hello World');
});
server.listen(3000);
Po spuštění bude server naslouchat na portu 3000.
===== Oblasti použití =====
Webové servery.
REST API.
Chatovací aplikace.
Streamovací služby.
Mikroservisy.
IoT aplikace.
CLI nástroje.
Backend webových aplikací.
===== Výhody =====
Jeden programovací jazyk pro frontend i backend.
Vysoký výkon.
Výborná podpora asynchronních operací.
Obrovský ekosystém balíčků.
Rychlý vývoj aplikací.
===== Nevýhody =====
Méně vhodné pro výpočetně náročné úlohy.
Složitější práce s rozsáhlými asynchronními aplikacemi.
Kvalita NPM balíčků se může výrazně lišit.
===== Související pojmy =====
[[javascript]]
[[event loop]]
[[event-driven programming]]
[[npm]]
[[backend]]
[[rest api]]
[[express.js]]
[[v8 engine]]
===== Shrnutí =====
Node.js je běhové prostředí umožňující spouštění JavaScriptu na serveru i mimo webový prohlížeč. Díky neblokujícímu I/O modelu, event loopu a rozsáhlému ekosystému NPM patří mezi nejpopulárnější technologie pro vývoj moderních webových a síťových aplikací.