close
Přeskočit na obsah

Node.js

Z Wikipedie, otevřené encyklopedie
Node.js
Logo
VývojářOpenJS Foundation a Ryan Dahl
První vydání27. května 2009; před 6177 dny[1]
Aktuální verze25.6.1 (10. února 2026)
Operační systémz/OS, Linux, MacOS, Microsoft Windows, SmartOS, FreeBSD, OpenBSD, AIX[2]
Vyvíjeno vJavaScript, C++, Python, C
Typ softwaruaplikační framework, svobodný a otevřený software, běhové prostředí, JavaScript runtime a WebAssembly runtime
Licencelicence MIT
Webnodejs.org
Některá data mohou pocházet z datové položky.

Node.js je multiplatformní běhové prostředí pro JavaScript navržené pro vytváření vysoce škálovatelných internetových aplikací, především webových serverů; lze jej však používat i pro vytváření programů pro prostředí příkazového řádku.

Node.js umožňuje spouštět JavaScriptový kód mimo webový prohlížeč; je dostupné pro Linux, MacOS, Microsoft Windows, Unix a další systémy. Skládá se z JavaScriptového engine V8 od společnosti Google a několika standardních knihoven. Jde o otevřený software s licencí MIT.[3][4] Možnost spouštět kód v JavaScriptu na serveru se často používá pro generování dynamického obsahu webových stránek před odesláním stránky do webového prohlížeče uživatele. Node.js tak představuje paradigma „JavaScript všude“[5] sjednocující vytváření webových aplikací v jediném programovacím jazyce, na rozdíl od používání různých programovacích jazyků na straně serveru a na straně klienta.

Node.js používá architekturu řízenou událostmi, která umožňuje asynchronní vstupní a výstupní operace pro minimalizaci režie procesoru a maximalizaci výkonu s cílem optimalizace propustnosti a škálovatelnosti WWW aplikací s mnoha vstupně/výstupními operacemi, včetně webových aplikací pracujících v reálném čase (například pro programy pro komunikaci v reálném čase a webové hry běžící v prohlížeči).[6]

Node.js vytvořil v roce 2009 Ryan Dahl a následný rozvoj byl sponzorován jeho zaměstnavatelem, firmou Joyent.[7][8] Další distribuovaný vývoj Node.js byl řízen nadací Node.js Foundation,[9] která se v roce 2019 spojila s JS Foundation. Vzniklá OpenJS Foundation je podporována programem Collaborative Projects nadace Linux Foundation.[10]

Node.js byl oceněn webem InfoWorld (zabývajícím se internetovými technologiemi) jako Nejlepší technologie roku 2012[11] a podle průzkumu Stack Overflow Developer Survey z roku 2025 patří k nejčastěji používaným WWW technologiím.[12]

K podobným projektům napsaným v jiných programovacích jazycích patří Twisted pro jazyk Python, Perl Object Environment pro Perl, libevent pro C a EventMachine pro Ruby. Na rozdíl od většiny JavaScriptových programů není spouštěn v internetovém prohlížeči, ale na straně serveru. Node.js implementuje některé části ze specifikace CommonJS[13] a je možné ho používat i interaktivně pomocí přiloženého interpretru REPL.

BERJAYA
Ryan Dahl, autor Node.js, v roce 2010
BERJAYA
Rocket Turtle, oficiální maskot Node.js od února 2024

Node.js vytvořil Ryan Dahl v roce 2009,[14] 13 let po uvedení LiveWire Pro Web společnosti Netscape, prvního JavaScriptového prostředí na straně serveru.[15] Dahl představil Node.js na první evropské konferenci JSConf 8. listopadu 2009.[16][17][18] Dahl kritizoval omezenou funkčnost Apache HTTP Serveru při obsluze mnoha (více než 10000) souběžných spojení a sekvenční programování, při jehož používání může aplikace zablokovat všechny procesy nebo způsobit vytvoření několika zásobníků provádění pro současná spojení.[zdroj?] První vydání Node.js podporovalo pouze Linux a Mac OS X. Jeho vývoj a údržbu prováděl sám Dahl a později jej sponzorovala firma Joyent.[19]

Node.js kombinoval JavaScriptový engine V8 společnosti Google, smyčku událostí a nízkoúrovňové API pro vstupy a výstupy.[20]

V lednu 2010 byl představen správce balíčků pro Node.js nazývaný npm.[21] Správce balíčků byl navržen s cílem zjednodušit instalaci, aktualizaci a odstraňování balíčků a umožnit programátorům publikovat a sdílet balíčky pro Node.js včetně zdrojového kódu.[20]

V červnu 2011 Microsoft a Joyent implementovali nativní verzi Node.js pro Microsoft Windows.[22] První sestavení Node.js pro Windows bylo vydáno v červenci 2011.

V lednu 2012 Dahl získal pro správu projektu autorovi npm Isaacu Schlueterovi.[23] V lednu 2014 Schlueter oznámil, že projekt Node.js bude vést Timothy J. Fontaine.[24]

Kvůli nespokojenosti s Joyentovým řízením vytvořil Fedor Indutny v prosinci 2014 io.js, odnož Node.js jako alternativu s otevřeným řízením a samostatným technickým výborem. Cílem bylo, na rozdíl od tehdejšího přístupu Node.js, vytvořit strukturu otevřenější k podnětům komunity a aktualizovat io.js na nejnovější verzi JavaScriptového jádra Google V8.[25]

V únoru 2015 byla založena Node.js Foundation s cílem sjednotit Node.js a io.js.[26] Sloučení proběhlo v září 2015, kdy se Node.js v0.12 a io.js v3.3 spojily do Node v4.0.[27] Toto sloučení přineslo do Node.js funkce V8 ES6 a zahájilo cyklus vydání s dlouhodobou podporou.[28] V roce 2016 web io.js doporučil návrat k Node.js a oznámil, že další verze io.js nebudou vydány, čímž fakticky ukončil odštěpení a potvrdil sloučení.[29]

V roce 2019 se JS Foundation a Node.js Foundation sloučily do OpenJS Foundation.

Logo Node.js tvoří zelený šestiúhelník s překrývajícími se pruhy, které symbolizují multiplatformní povahu prostředí.[30] Za oficiálního maskota Node.js byla v únoru 2024 po výtvarné soutěži vybrána Rocket Turtle.[31]

Node.js umožňuje vytvářet webové servery a síťové nástroje pomocí jazyce JavaScript a sady „modulů“, které poskytují různé funkcionality.[16][20][32][33][34] K dispozici jsou moduly pro vstupy a výstupy používající souborový systém, síťové funkce (DNS, HTTP, TCP, TLS/SSL a UDP), pro práci s binárními daty a vyrovnávacími paměťmi, kryptografické funkce, práci s datovými proudy a další základní funkce.[20][33][35] Moduly Node.js používají API, které snižuje složitost psaní serverových aplikací.[20][33]

Od verze 22.6.0 podporuje Node.js nativně jak JavaScript tak TypeScript, což umožňuje provádět kód v TypeScriptu bez zvláštního kroku překladu.[36] Podporou TypeScriptu přispěl člen TSC Node.js Marco Ippolito. Kromě toho je k dispozici mnoho jazyků kompilovatelných do JS,[37] což umožňuje psát aplikace pro Node.js také v CoffeeScriptu,[38] Dartu, ClojureScriptu a dalších jazycích.

Node.js se používá především k vytváření síťových programů, jako jsou např. WWW servery.[32] Zatímco v PHP většina funkcí pro vstup a výstup blokuje další provádění do dokončení operace, funkce Node.js jsou neblokující – provádějí se souběžně s dalšími příkazy a používají zpětná volání pro signalizaci dokončení nebo selhání.[32]

Node.js je oficiálně podporované na operačních systémech Linux, MacOS a Microsoft Windows 8.1 a Server 2012 (a vyšší),[2] s Tier 2 podporou pro SmartOS a AIX a experimentální podporou pro FreeBSD. Pracuje také na OpenBSD a jsou dostupné LTS verze pro IBM i (AS/400).[39] Prostředí lze vytvořit i pro podobné operační systémy, které nejsou oficiálně podporované, jako je NonStop OS[40] a Unix servery.

Příklady

[editovat | editovat zdroj]

Kompletní implementace programu hello world v Node.js:

var http = require('http');

http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8000);

console.log('Server running at http://localhost:8000/');

Další ukázka je jednoduchý TCP server, který poslouchá na TCP a UDP portu 7000 a odpovídá na příchozí spojení:

var net = require('net');

net.createServer(function (stream) {
    stream.write('hello\r\n');

    stream.on('end', function () {
        stream.end('goodbye\r\n');
    });

    stream.pipe(stream);
}).listen(7000);

Node.js má velmi aktivní vývojářskou komunitu, která se soustřeďuje hlavně kolem dvou mailing listů nodejs a nodejs-dev a také na IRC kanálu #node.js na freenode.

Kromě toho se Node.js vývojáři setkávají také na konferencích. První mezinárodní konferencí zaměřenou výhradně na tuto backendovou technologii byla Node.TLV, která se uskutečnila v roce 2020 v Izraeli a 800 účastníkům nabídla celkem 22 odborných přednášek.[41]

V tomto článku byl použit překlad textu z článku Node.js na anglické Wikipedii.

  1. node-v0.x-archive on GitHub [online]. [cit. 2014-08-02]. Dostupné online.
  2. 1 2 nodejs/node [online]. 2022-04-13. Dostupné online.
  3. node/LICENSE at master [online]. Node.js Foundation, 2018-09-17 [cit. 2018-09-17]. Dostupné online.
  4. The MIT License [online]. 2018-09-17 [cit. 2018-09-17]. Dostupné online.
  5. GCUOMO. JavaScript Everywhere and the Three Amigos (Into the wild BLUE yonder!) [online]. 2013-10-24 [cit. 2013-10-24]. Dostupné v archivu pořízeném z originálu dne 2013-11-14.
  6. Laurent Orsini. What You Need To Know About Node.js [online]. 2013-11-07 [cit. 2022-02-06]. Dostupné v archivu pořízeném z originálu dne 2013-11-11.
  7. Why Everyone Is Talking About Node, By Jolie O'Dell, March 10, 2011, Mashable
  8. Alex Handy. Node.js pushes JavaScript to the server-side [online]. SDTimes, 2011-06-24 [cit. 2011-09-04]. Dostupné online.
  9. Node.js Foundation - Node.js [online]. [cit. 2015-07-04]. Dostupné online.
  10. Linux Foundation Collaborative Projects [online]. 2015-07-04 [cit. 2015-07-04]. Dostupné online.
  11. Node.js Selected by InfoWorld for 2012 Technology of the Year Award [online]. MarketWatch, January 11, 2012 [cit. 2012-01-26]. Dostupné v archivu pořízeném dne 2012-02-02.
  12. Stack Overflow Developer Survey 2025 [online]. [cit. 2025-10-10]. Dostupné online. (anglicky)
  13. Implementations/node.js – CommonJS Spec Wiki
  14. About Node.js, and why you should add Node.js to your skill set? [online]. 2016-09-11 [cit. 2016-10-23]. Dostupné v archivu pořízeném dne 2017-04-01.
  15. STAFF, CNET News. Netscape opens intranet attack. www.cnet.com. 1996-10-15. Dostupné online [cit. 2017-04-20]. (anglicky)
  16. 1 2 Sams Teach Yourself Node.js in 24 Hours, Sams Publishing, 05-Sep-2012
  17. UBL, Malte. JSConf.eu 2009, Berlin, Germany [online]. 2009-09-09 [cit. 2009-09-09]. Dostupné online.
  18. Ryan Dahl: Original Node.js presentation [online]. 2012-06-08. Dostupné v archivu pořízeném z originálu dne 2021-12-15.
  19. Ryan Dahl. Joyent and Node [online]. Google Groups, 2010-11-09 [cit. 2015-02-05]. Dostupné online.
  20. 1 2 3 4 5 Professional Node.js: Building JavaScript Based Scalable Software, John Wiley & Sons, 01-Oct-2012
  21. Earliest releases of npm [online]. [cit. 2016-07-27]. Dostupné online.
  22. RYANDAHL. Porting Node to Windows With Microsoft's Help [online]. 2011-06-23 [cit. 2016-04-17]. Dostupné online.
  23. DAHL, Ryan. New gatekeeper [online]. [cit. 2013-10-26]. Dostupné online.
  24. SCHLUETER, Isaac. The Next Phase of Node.js [online]. 2014-01-15 [cit. 2014-01-21]. Dostupné online.
  25. Q&A: Why io.js decided to fork Node.js, InfoWorld Tech Watch
  26. Node.js Foundation Advances Community Collaboration, Announces New Members and Ratified Technical Governance [online]. [cit. 2015-07-04]. Dostupné v archivu pořízeném dne 2015-06-24.
  27. Node.js Foundation Combines Node.js and io.js Into Single Codebase in New Release [online]. 2015-09-14 [cit. 2016-01-28]. Dostupné online.
  28. io.js and Node.js merge [online]. 2015-05-19 [cit. 2015-06-27]. Dostupné online.
  29. Io.js, JavaScript I/O, "io.js has merged with the Node.js project again. There won't be any further io.js releases. All of the features in io.js are available in Node.js v4 and above."
  30. Brand Guide [online]. OpenJS Foundation [cit. 2024-03-22]. Dostupné online.
  31. Node.JS on X: "Meet Rocket Turtle there are many ways 👋" [online]. [cit. 2024-03-22]. Dostupné online.
  32. 1 2 3 Node.js for PHP Developers, O'Reilly Media, Inc., 2013
  33. 1 2 3 Node.js Essentials, Packt Publishing, 10-Nov-2015
  34. Smashing Node.js: JavaScript Everywhere, John Wiley & Sons, 14-Aug-2012
  35. Modules, Nodejs Website
  36. Node v22.6.0 (Current) Release Notes [online]. 2024-07-09 [cit. 2025-10-13]. Dostupné online.
  37. List of languages that compile to JS [online]. Dostupné online.
  38. CoffeeScript on Node.js. [s.l.]: O'Reilly Media, Inc., 2013-04-15. Dostupné online. ISBN 9781449316846.
  39. FOUNDATION, Node js. Installing Node.js via package manager [online]. [cit. 2019-05-19]. Dostupné online. (anglicky)
  40. bomBora - Node.js for NonStop [online]. Infrasoft [cit. 2015-08-14]. Dostupné v archivu pořízeném dne 2018-03-11.
  41. Node.TLV 2020: První mezinárodní Node.js konference v Izraeli. Ackee Blog [online]. Ackee, 2020-22-5 [cit. 2020-6-29]. Dostupné online.

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]