Node.js je běhové prostředí, díky kterému se dá JavaScript spouštět na serveru, nejen v prohlížeči návštěvníka. Vzniklo v roce 2009 tak, že se z prohlížeče Chrome vzal jeho motor na JavaScript a osadil se samostatně, mimo prohlížeč. Programátor tak může psát obě strany aplikace jedním jazykem.
Přirovnání: JavaScript byl původně jazyk, kterým se domlouvá obsluha ve výloze – reaguje na kliknutí, rozbaluje menu, kontroluje formulář. Node.js ho pustil i do zázemí obchodu, kde se vyřizují objednávky, sahá se do databáze a počítají se ceny. Do té doby tam byly jazyky jako PHP, Python nebo Java.
Čím je Node.js zvláštní:
- Nečeká na jedno po druhém – když si vyžádá data z databáze, mezitím obsluhuje další požadavky. Hodí se proto na chaty, notifikace a rozhraní, kde chodí hodně krátkých dotazů.
- Jeden jazyk pro frontend i backend – menší tým zvládne celou aplikaci.
- Obrovská zásoba hotových balíčků – instalují se správcem balíčků npm nebo Yarn.
- Běží jako samostatná služba – na rozdíl od PHP, které se spustí a po odeslání stránky skončí, Node.js drží běžící proces, který musí někdo hlídat a po pádu znovu nastartovat.
Právě poslední bod je důvod, proč se Node.js s běžným sdíleným webhostingem nepotká. Sdílený hosting je stavěný na to, že web se skládá až ve chvíli, kdy o něj někdo požádá. Na hostingu CHOST.cz Node.js nenabízíme – weby u nás běží na PHP, ověřeně na něm funguje WordPress, e-shopy i vlastní aplikace.
To ale neznamená, že u nás nemůžete mít moderní web psaný v JavaScriptu. Velká část dnešních projektů Node.js používá jen na počítači vývojáře: tam se z desítek souborů sestaví („build") několik hotových a zmenšených, a na hosting se přes FTP nahraje už jen výsledek – HTML, jeden soubor se styly a jeden se skripty. Takový web u nás poběží bez problémů, protože se na serveru nic nespouští.
Kdy tedy Node.js na serveru opravdu potřebujete: když aplikace musí trvale běžet a držet spojení s uživateli, například chat v reálném čase nebo herní zázemí. Pro takové věci se používá vlastní server, ne sdílený hosting. Pokud si nejste jistí, čím je Váš web napsaný, poznáte to podle konfiguračního souboru – projekty pro Node.js mívají soubor package.json, weby pro PHP jej nemají.