1. díl - Úvod do Node.js

JavaScript Node.js Úvod do Node.js

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Vítejte u první lekce online kurzu o tvorbě webových aplikací v javascriptovém běhovém prostředí 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.

Úvod do Node.js

Node.js online kurz

Node.js je prostředí umožňující spouštět JavaScript kód mimo webový prohlížeč. Je postaveno na Chrome V8 JavaScript enginu, 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í můžete 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 např. 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ů naráz. 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 ještě 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.

Znalosti

Jelikož budeme tvořit webovou aplikaci, měli by jste mít představu o tom, jak takové aplikace fungují a rozumět HTTP protokolu. Dále jste určitě již postřehli, že jako programovací jazyk budeme používat JavaScript. A tím je myšlen převážně čistý JavaScript plus nějaké ty Node.js knihovny, takže např. jQuery určitě nevyužijeme. Navíc, jelikož budeme mít aktuální verzi Node.js na našem serveru, můžeme s klidným svědomím používat i nejnovější vychytávky z ES6, "nové" verze JavaScriptu.

Nástroje

Kromě nainstalovaného Node.js bych doporučil používat nějaké rozumné IDE. To vám obecně při psaní v JS usnadní práci. Já osobně používám WebStorm, ale mám dobré zkušenosti např. i se známými NetBeans.

Instalace

Nyní když máme vše potřebné, pojďme si společně Node.js nainstalovat. Je to velice jednoduché. Přejdeme na oficiální stránky Node.js, případně do sekce download (viz. obrázek), a 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 :)

Stažení instalátoru Node.js

Zatím co instalujete, pojďme si udělat menší úvod do architektury této technologie.

Architektura

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í

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í, obzvláště 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 i vy ho nyní již máte 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ůžete 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. Npm se chlubí tím, že je jedním z největších balíčkových správců vůbec a aktuálně obsahuje něco okolo 650 000 balíčků. Najdete zde balíčky nástrojů jako Grunt, Bower, či Gulp nebo také populárních frameworků jako jQuery, React, či AngularJS.

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 najdete v Node.js API. Jelikož je toto kurz Node.js, budu se snažit primárně využívat tyto vestavěné moduly, než abych instaloval nějaké externí.

http modul

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. Nejlepší bude ukázat si jednoduchý příklad.

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

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 jste asi vyčetli, že jim odešleme právě text "Hello World". Nakonec náš server nastartujeme na příslušné adrese a portu, přičemž po tomto nastartování následuje callback s vypsáním informativní zprávy, abychom poznali, že server již běží.

Spuštění

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. Pokud voláte příkaz z příkazového řádku, musíte se nacházet ve stejné složce jako je index.js nebo zadat úplnou cestu k němu:

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

Nyní již náš server běží. Když si otevřeme webový prohlížeč a přejdeme na jeho adresu, čímž mu vyšleme požadavek, získáme danou odpověď:

První aplikace v Node.js

To je z dnešního úvodního tutoriálu vše, příště, v lekci , se již podíváme na tvorbu zajímavější webové aplikace.


 

 

Článek pro vás napsal Jindřich Máca
Avatar
Jak se ti líbí článek?
12 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. :-)
Miniatura
Všechny články v sekci
Node.js
Aktivity (3)

 

 

Komentáře

Avatar
Tomas Franta
Člen
Avatar
Tomas Franta:25. dubna 15:10

Zdravím, plánuje se někdy pokračování? Díky

 
Odpovědět 25. dubna 15:10
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomas Franta
David Čápka:25. dubna 16:56

Ne, vyšlo to jen proto aby to už nikdy nepokračovalo :D

Odpovědět  ±0 25. dubna 16:56
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Tomas Franta
Člen
Avatar
Odpovídá na David Čápka
Tomas Franta:25. dubna 17:01

Dobře víš, jak to bylo myšleno :-D

 
Odpovědět 25. dubna 17:01
Avatar
SniCel
Člen
Avatar
SniCel:5. května 11:11

Tvl, konečne neco zajimaveho a modernejsiho na tehle mrtve a zastarale siti :)

 
Odpovědět 5. května 11:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.