====== 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í.