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

1. diel - Úvod do Node.js

Vitajte u prvej lekcie online kurzu o tvorbe webových aplikácií v javascriptové runtime prostredí Node.js. V dnešnom tutoriále si prostredie predstavíme a nainštalujeme. Nakoniec si skúsime napísať aj svoju prvú aplikáciu.

Úvod do Node.js

Node.js online kurz - Node.js

Node.js je prostredie umožňujúce spúšťať JavaScript kód mimo webový prehliadač. Je postavené na Chrome V8 JavaScript enginu, takže základ tohto JS prostredie je rovnaký ako vo webovom prehliadači Google Chrome. Dôležité je povedať, že hoci v tomto prostredí môžete písať všeličo, jeho návrh a primárny účel je tvorba serverovej časti webových aplikácií. Toto má spoločné napr. S jazykom PHP, ktorý má rovnaké zameranie. JavaScript sa teda vďaka tomuto prostrediu dá používať aj na serveri a nie len na druhom konci, u klienta. Avšak na rozdiel napr. Od spomínaného PHP je v Node.js kladený dôraz na vysokú škálovateľnosť, tzn. schopnosť obslúžiť veľa pripojených klientov naraz. Pre túto vlastnosť a vysokú výkonnosť je dnes Node.js veľmi obľúbený pre tvorbu tzv. API serverov pre klientské single page aplikácie tiež v JavaScriptu. Prečo je Node.js tak výkonný si ešte vysvetlíme pri popise jeho architektúry.

Potrebné nástroje pre vývoj v Node.js

Na začiatok, než sa vôbec pustíme do inštalácie, nás určite bude zaujímať, čo všetko potrebujeme pre prácu v Node.js.

Znalosti

Keďže budeme tvoriť webovú aplikáciu, mali by ste mať predstavu o tom, ako takéto aplikácie fungujú a rozumieť HTTP protokolu. Ďalej ste určite už postrehli, že ako programovací jazyk budeme používať JavaScript. A tým je myslený prevažne čistý JavaScript plus nejaké tie Node.js knižnice, takže napr. JQuery určite nevyužijeme. Navyše, keďže budeme mať aktuálnu verziu Node.js na našom serveri, môžeme s kľudným svedomím používať aj najnovšie vychytávky z ES6, "novej" verzie JavaScriptu.

Nástroje

Okrem nainštalovaného Node.js by som odporučil používať nejaké rozumné IDE. To vám všeobecne pri písaní v JS uľahčí prácu. Ja osobne používam webstore, ale mám dobré skúsenosti napr. Aj so známymi NetBeans.

Inštalácia

Teraz keď máme všetko potrebné, poďme si spoločne Node.js nainštalovať. Je to veľmi jednoduché. Prejdeme na oficiálne stránky Node.js, prípadne do sekcie download (viď. Obrázok), a stiahneme si inštalátor pre náš operačný systém. Ten následne spustíme a podľa inštrukcií nainštalujeme. Určite už ste takých inštalácií robili nespočet :)

Stiahnutie inštalátora Node.js - Node.js

Zatiaľ čo inštalujete, poďme si urobiť menšiu úvod do architektúry tejto technológie.

Architektúra

Jadro celého Node.js tvorí tzv. Slučka udalostí (event loop). Do nej vstupujú všetky užívateľské požiadavky ako udalosti, ktoré sú následne pridelené jednotlivým nezávislým vláknam. Tu určite platí, že jeden obrázok vydá za tisíc slov:

Node.js slučka udalostí - Node.js

Ďalšie operácie, ako manipulácia so zdrojmi operačného systému, čo sú napr. Čítanie súboru alebo práca s databázou, sú potom riešené aj pomocou udalostí (tzv. Neblokujúca I / O). Ich volanie je logicky opäť zaradené do slučky udalostí. Vo výsledku to znamená, že vlastne úplne všetko riadi táto slučka pomocou rôznych udalostí. Jednoduché, ale veľmi efektívne riešenie, obzvlášť pre webové aplikácie s veľkým množstvom používateľských požiadaviek. JavaScript potom do toho všetkého veľmi pekne zapadá, pretože tieto udalosti sú natívne reprezentované pomocou JS callback :)

Balíčkový systém NPM

Spoločne s Node.js ide ruka v ruke aj balíčkovací ekosystém NPM. Je priamo súčasťou štandardnej inštalácie Node.js, takže aj vy ho teraz už máte k dispozícii. Ovláda sa pomocou príkazového riadku alebo v rámci IDE.

Nie je žiadnou novinkou, že väčšina programovacích jazykov má svojho správcu knižníc a vo svete JavaScriptu je to práve NPM. Pomocou neho môžete všeobecne inštalovať aj spravovať závislosti vo svojich projektoch, ale tiež zdieľať a distribuovať svoj JS kód. Teraz sa nebavíme len o knižniciach pre Node.js. NPM sa chváli tým, že je jedným z najväčších balíčkových správcov vôbec a aktuálne obsahuje niečo okolo 650 000 balíčkov. Nájdete tu balíčky nástrojov ako Grunt, Bower, či Gulp alebo tiež populárnych frameworkov ako jQuery, React, či AngularJS.

My ho určite využijeme aj v rámci nášho projektu, až si budeme chcieť nainštalovať potrebné knižnice, napr. Pre prácu s databázou. Dôležité je spomenúť, že Node.js má aj niekoľko vstavaných modulov, primárne zameraných na vývoj webových aplikácií. Ich zoznam nájdete v Node.js API. Keďže je toto kurz Node.js, budem sa snažiť primárne využívať tieto vstavané moduly, než aby som inštaloval nejaké externé.

Http modul

Node.js nebeží v rámci žiadneho webového servera, ale si v rámci skriptu webový server spúšťame sami priamo z kódu. K tomuto účelu slúži vstavaný modul http, ktorý nám následne poskytne plnú kontrolu nad HTTP komunikáciou tohto servera. Je dôležité si uvedomiť, že tento modul neposkytuje žiadnu automatizáciu a všetky náležitosti HTTP protokolu, ako napr. Hlavičky, si teda musíme postrážiť sami. Najlepšie bude ukázať si jednoduchý príklad.

Prvej aplikácie

Poďme si teraz skúsiť napísať jednoduchú webovú aplikáciu v Node.js. Pretože s ňou budeme potrebovať nejako komunikovať, použijeme práve http modul. A čo je vhodnejšie ako osvedčené "Hello World"? :) Vytvoríme si teda nový projekt a v ňom súbor index.js s nasledujúcim obsahom:

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}/`);
});

Najskôr si načítame http modul. Pomocou neho si vytvoríme server s Callback, ktorý bude volaný pre spracovanie jednotlivých klientskych požiadaviek v rámci už spomínanej slučky udalostí. V tomto callbacku potom na základe požiadaviek odosielame klientom príslušnú odpoveď (response) s náležitosťami HTTP protokolu. Z kódu ste asi vyčítali, že im odošleme práve text "Hello World". Nakoniec náš server naštartujeme na príslušnej adrese a portu, pričom po tomto naštartovaní nasleduje callback s vypísaním informatívne správy, aby sme poznali, že server už beží.

Spustenie

Teraz musíme náš skript spustiť v prostredí Node.js. To urobíme buď v rámci IDE alebo pomocou jednoduchého príkazu z príkazového riadku, kde uvidíme aj výstup. Ak voláte príkaz z príkazového riadka, musíte sa nachádzať v rovnakom priečinku ako je index.js alebo zadať úplnú cestu k nemu:

node index.js
Server running at http://127.0.0.1:3000/

Teraz už náš server beží. Keď si otvoríme webový prehliadač a prejdeme na jeho adresu, čím mu vyšleme požiadavku, získame danú odpoveď:

127.0.0.1:3000
127.0.0.1:3000

To je z dnešného úvodného tutoriálu všetko. Nabudúce, v lekcii REST API, SOAP, GRAPH a JSON , sa zoznámime s rôznymi typmi aplikačných rozhraní, aby sme mohli tvoriť zaujímavejšie webové aplikácie.


 

Všetky články v sekcii
Node.js
Preskočiť článok
(neodporúčame)
REST API, SOAP, GRAPH a JSON
Článok pre vás napísal Jindřich Máca
Avatar
Užívateľské hodnotenie:
4 hlasov
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