Node.js
| Vývojář | OpenJS Foundation a Ryan Dahl |
|---|---|
| První vydání | 27. května 2009[1] |
| Aktuální verze | 25.6.1 (10. února 2026) |
| Operační systém | z/OS, Linux, MacOS, Microsoft Windows, SmartOS, FreeBSD, OpenBSD, AIX[2] |
| Vyvíjeno v | JavaScript, C++, Python, C |
| Typ softwaru | aplikační framework, svobodný a otevřený software, běhové prostředí, JavaScript runtime a WebAssembly runtime |
| Licence | licence MIT |
| Web | nodejs |
| 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.
Historie
[editovat | editovat zdroj]

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.
Branding
[editovat | editovat zdroj]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]
Popis
[editovat | editovat zdroj]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);
Komunita
[editovat | editovat zdroj]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]
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Node.js na anglické Wikipedii.
- ↑ node-v0.x-archive on GitHub [online]. [cit. 2014-08-02]. Dostupné online.
- 1 2 nodejs/node [online]. 2022-04-13. Dostupné online.
- ↑ node/LICENSE at master [online]. Node.js Foundation, 2018-09-17 [cit. 2018-09-17]. Dostupné online.
- ↑ The MIT License [online]. 2018-09-17 [cit. 2018-09-17]. Dostupné online.
- ↑ 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.
- ↑ 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.
- ↑ Why Everyone Is Talking About Node, By Jolie O'Dell, March 10, 2011, Mashable
- ↑ Alex Handy. Node.js pushes JavaScript to the server-side [online]. SDTimes, 2011-06-24 [cit. 2011-09-04]. Dostupné online.
- ↑ Node.js Foundation - Node.js [online]. [cit. 2015-07-04]. Dostupné online.
- ↑ Linux Foundation Collaborative Projects [online]. 2015-07-04 [cit. 2015-07-04]. Dostupné online.
- ↑ 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.
- ↑ Stack Overflow Developer Survey 2025 [online]. [cit. 2025-10-10]. Dostupné online. (anglicky)
- ↑ Implementations/node.js – CommonJS Spec Wiki
- ↑ 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.
- ↑ STAFF, CNET News. Netscape opens intranet attack. www.cnet.com. 1996-10-15. Dostupné online [cit. 2017-04-20]. (anglicky)
- 1 2 Sams Teach Yourself Node.js in 24 Hours, Sams Publishing, 05-Sep-2012
- ↑ UBL, Malte. JSConf.eu 2009, Berlin, Germany [online]. 2009-09-09 [cit. 2009-09-09]. Dostupné online.
- ↑ Ryan Dahl: Original Node.js presentation [online]. 2012-06-08. Dostupné v archivu pořízeném z originálu dne 2021-12-15.
- ↑ Ryan Dahl. Joyent and Node [online]. Google Groups, 2010-11-09 [cit. 2015-02-05]. Dostupné online.
- 1 2 3 4 5 Professional Node.js: Building JavaScript Based Scalable Software, John Wiley & Sons, 01-Oct-2012
- ↑ Earliest releases of npm [online]. [cit. 2016-07-27]. Dostupné online.
- ↑ RYANDAHL. Porting Node to Windows With Microsoft's Help [online]. 2011-06-23 [cit. 2016-04-17]. Dostupné online.
- ↑ DAHL, Ryan. New gatekeeper [online]. [cit. 2013-10-26]. Dostupné online.
- ↑ SCHLUETER, Isaac. The Next Phase of Node.js [online]. 2014-01-15 [cit. 2014-01-21]. Dostupné online.
- ↑ Q&A: Why io.js decided to fork Node.js, InfoWorld Tech Watch
- ↑ 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.
- ↑ 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.
- ↑ io.js and Node.js merge [online]. 2015-05-19 [cit. 2015-06-27]. Dostupné online.
- ↑ 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."
- ↑ Brand Guide [online]. OpenJS Foundation [cit. 2024-03-22]. Dostupné online.
- ↑ Node.JS on X: "Meet Rocket Turtle there are many ways 👋" [online]. [cit. 2024-03-22]. Dostupné online.
- 1 2 3 Node.js for PHP Developers, O'Reilly Media, Inc., 2013
- 1 2 3 Node.js Essentials, Packt Publishing, 10-Nov-2015
- ↑ Smashing Node.js: JavaScript Everywhere, John Wiley & Sons, 14-Aug-2012
- ↑ Modules, Nodejs Website
- ↑ Node v22.6.0 (Current) Release Notes [online]. 2024-07-09 [cit. 2025-10-13]. Dostupné online.
- ↑ List of languages that compile to JS [online]. Dostupné online.
- ↑ CoffeeScript on Node.js. [s.l.]: O'Reilly Media, Inc., 2013-04-15. Dostupné online. ISBN 9781449316846.
- ↑ FOUNDATION, Node js. Installing Node.js via package manager [online]. [cit. 2019-05-19]. Dostupné online. (anglicky)
- ↑ bomBora - Node.js for NonStop [online]. Infrasoft [cit. 2015-08-14]. Dostupné v archivu pořízeném dne 2018-03-11.
- ↑ 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]- JavaScript
- npm – Node Package Manager
- Yarn
Externí odkazy
[editovat | editovat zdroj]
Obrázky, zvuky či videa k tématu Node.js na Wikimedia Commons - – oficiální stránky (EN)
- Source Repository
- Nodejs mailing list – mailing list
- Nodejs-dev mailing list – mailing list chyb
- The Node.js Package Manager – seznam dostupných modulů / knihoven
- How To Node tutorial web site – tutoriály v angličtině
