IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 1 - Úvod do Node.js

Vítejte u první lekce online kurzu o architektuře a tvorbě webových aplikací v běhovém prostředí JavaScript Node.js. V dnešním tutoriálu si prostředí představíme a nainstalujeme. Nakonec si zkusíme napsat i svou první aplikaci.

Minimální požadavky

Pro úspěšné absolvování kurzu je potřebná znalost JavaScriptu v rozsahu našich kurzů:

Vhodná je též základní znalost HTML. Pokud některé ze znalostí nemáte, absolvujte prvně daný kurz.

Úvod do Node.js

Node.js online kurz - Node.js - Serverový JavaScript

Node.js je prostředí umožňující spouštět JavaScript kód mimo webový prohlížeč. Je postaveno na JavaScript enginu Chrome V8, takže základ tohoto JS prostředí je stejný jako ve webovém prohlížeči Google Chrome. Důležité je říci, že byť v tomto prostředí lze psát ledacos, jeho návrh a primární účel je tvorba serverové části webových aplikací. Toto má společné např. s jazykem PHP, který má stejné zaměření. JavaScript se tedy díky tomuto prostředí dá používat i na serveru a ne jen na druhém konci, u klienta. Avšak na rozdíl od zmíněného PHP je v Node.js kladen důraz na vysokou škálovatelnost, tzn. schopnost obsloužit mnoho připojených klientů současně. Pro tuto vlastnost a vysokou výkonnost je dnes Node.js velmi oblíbený pro tvorbu tzv. API serverů pro klientské single page aplikace rovněž v JavaScriptu. Proč je Node.js tak výkonný si vysvětlíme u popisu jeho architektury.

Potřebné nástroje pro vývoj v Node.js

Na začátek, než se vůbec pustíme do instalace, nás určitě bude zajímat, co vše potřebujeme pro práci v Node.js.

Kromě nainstalovaného Node.js budeme potřebovat vývojové prostředí (IDE). Možností je více, od WebStorm, přes NetBeans až po Visual Studio Code. Všechny jmenované IDE jsou dostatečně vybavené pro práci s Node.js, záleží spíše na osobním zvyku a preferencích.

Instalace Node.js

Nyní když máme připravené IDE, pojďme si společně Node.js nainstalovat. Je to velice jednoduché. Přejdeme na oficiální stránky Node.js, případně přímo do sekce download:

Stažení instalátoru Node.js - Node.js - Serverový JavaScript

Stáhneme si instalátor pro náš operační systém. Ten následně spustíme a podle instrukcí nainstalujeme. Určitě už jste takových instalací dělali nespočet 🙂

Architektura Node.js

Jádro celého Node.js tvoří tzv. smyčka událostí (event loop). Do ní vstupují všechny uživatelské požadavky jako události, které jsou poté přiděleny jednotlivým nezávislým vláknům. Zde určitě platí, že jeden obrázek vydá za tisíc slov:

Node.js smyčka událostí - Node.js - Serverový JavaScript

Další operace, jako manipulace se zdroji operačního systému, což jsou např. čtení souboru nebo práce s databází, jsou poté řešeny také pomocí událostí (tzv. neblokující I/O). Jejich volání je logicky opět zařazeno do smyčky událostí. Ve výsledku to znamená, že vlastně úplně vše řídí tato smyčka pomocí různých událostí. Jednoduché, avšak velice efektivní řešení, je obzvláště vhodné pro webové aplikace s velkým množstvím uživatelských požadavků. JavaScript pak do toho všeho velice hezky zapadá, jelikož tyto události jsou nativně reprezentovány pomocí JS callbacků :)

Balíčkový systém npm

Společně s Node.js jde ruku v ruce i balíčkovací ekosystém npm. Je přímo součástí standardní instalace Node.js, takže ho již máme k dispozici. Ovládá se pomocí příkazové řádky nebo v rámci IDE.

Není žádnou novinkou, že většina programovacích jazyků má svého správce knihoven a ve světě JavaScriptu je to právě npm. Pomocí něho můžeme obecně instalovat i spravovat závislosti ve svých projektech, ale také sdílet a distribuovat svůj JS kód. Nyní se nebavíme jen o knihovnách pro Node.js. Systém npm se chlubí tím, že je se stovkami tisíc dostupných balíčků jedním z největších balíčkových správců vůbec. Obsahuje balíčky nástrojů jako Grunt, Bower, či Gulp nebo také populárních frameworků jako jQuery, React, či Angular.

My ho určitě využijeme i v rámci našeho projektu, až si budeme chtít nainstalovat potřebné knihovny, např. pro práci s databází. Důležité je zmínit, že Node.js má i několik vestavěných modulů, primárně zaměřených na vývoj webových aplikací. Jejich seznam je k dispozici v Node.js API. V rámci kurzu budeme primárně využívat tyto vestavěné moduly, než abychom instalovali nějaké externí.

Modul http

Node.js neběží v rámci žádného webového serveru, nýbrž si v rámci skriptu webový server spouštíme sami přímo z kódu. K tomuto účelu slouží vestavěný modul http, který nám následně poskytne plnou kontrolu nad HTTP komunikací tohoto serveru. Je důležité si uvědomit, že tento modul neposkytuje žádnou automatizaci a veškeré náležitosti HTTP protokolu, jako např. hlavičky, si tedy musíme pohlídat sami.

První aplikace

Pojďme si nyní zkusit napsat jednoduchou webovou aplikaci v Node.js. Protože s ní budeme potřebovat nějak komunikovat, použijeme právě http modul. A co je vhodnější než osvědčené "Hello World"? 🙂 Vytvoříme si tedy nový adresář s názvem pozdrav/ a v něm soubor index.js s následujícím obsahem:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((request, response) => {
    response.statusCode = 200;
    response.setHeader('Content-Type', 'text/plain');
    response.end('Hello World!');
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

Kód si vysvětlíme. Nejdříve si načteme http modul. Pomocí něj si vytvoříme server s callbackem, který bude volán pro zpracování jednotlivých klientských požadavků v rámci již zmíněné smyčky událostí. V tomto callbacku poté na základě požadavků odesíláme klientům příslušnou odpověď (response) s náležitostmi HTTP protokolu. Z kódu je zřejmé, že jim odešleme právě text Hello World. Nakonec náš server spustíme na příslušné adrese a portu. Po jeho spuštění následuje callback s vypsáním informativní zprávy, abychom poznali, že server již běží.

Spuštění aplikace

Nyní musíme náš skript spustit v prostředí Node.js. To uděláme buď v rámci IDE nebo pomocí jednoduchého příkazu z příkazového řádku, kde uvidíme i výstup.

Příkazový řádek

Prvně potřebujeme spustit příkazový řádek nebo Power Shell a přejít do složky s projektem. To nejjednodušeji uděláme kliknutím pravým tlačítkem myši na naši složku pozdrav/ v průzkumníku Windows za držení klávesy Shift. Výsledkem bude zobrazení kontextového menu, kde bude díky držení Shift navíc volba Otevřít zde okno Power Shell (Win 10) nebo Otevřít v aplikaci Terminál (Win 11). Po kliknutí na volbu se spustí okno příkazového řádku:

Windows PowerShell
PS C:\Users\karel\Dropbox\Node\pozdrav>

Obsah konzole se může lišit v závislosti na operačním systému. Důležité je, aby cesta končila na pozdrav/ a byli jsme tedy ve složce pro naší aplikaci.

Pokud voláme Node.js příkaz z příkazového řádku, musíme se nacházet ve stejném adresáři, v němž je soubor, případně k němu zadat úplnou cestu. My tedy můžeme nyní napsat příkaz:

node index.js

A potvrdit klávesou Enter. V konzoli vidíme, že server běží:

Příkazový řádek
Server running at http://127.0.0.1:3000/

Nyní si otevřeme webový prohlížeč a přejdeme na adresu 127.0.0.1:3000. Tím serveru vyšleme požadavek a získáme od něj odpověď:

127.0.0.1:3000
127.0.0.1:3000

To je z dnešního úvodního tutoriálu vše.

V další lekci, REST API, SOAP, GraphQL a JSON, se seznámíme s různými typy aplikačních rozhraní, abychom mohli tvořit zajímavé webové aplikace.


 

Všechny články v sekci
Node.js - Serverový JavaScript
Přeskočit článek
(nedoporučujeme)
REST API, SOAP, GraphQL a JSON
Článek pro vás napsal Jindřich Máca
Avatar
Uživatelské hodnocení:
241 hlasů
Autor se věnuje převážně webovým technologiím, ale má velkou zálibu ve všem vědeckém, nejen ze světa IT. :-)
Aktivity