2. Hello world!
V druhém díle našeho Node.js tutoriálu si konečně vyzkoušíme napsat svůj první kód. Abychom mohli programovat, budeme potřebovat i nějaký textový editor nebo vývojové prostředí (IDE). Teoreticky nám postačí i Poznámkový blok z Windows, takový vývoj ale nebude zrovna komfortní. Aktuálně si můžeme vybírat z velkého množství editorů, některé slouží k programování obecně, jiné jsou zaměřené speciálně na JavaScript nebo přímo na Node.js. Za sebe Vám doporučím Sublime Text, který se k programování v Node.js hodí výborně a nevyžaduje žádnou vstupní investici.A nyní hurá na svůj první kód. Nemůže to být samozřejmě nic jiného než profláknuté Hello World!. Nejdříve si ukážeme kód, který si následně detailně projdeme.
const http = require('http');
const host = '127.0.0.2';
const port = 2222;
const server = http.createServer((request, response) => {
response.statusCode = 200;
response.setHeader('Content-Type', 'text/html');
response.write("Hello World!");
response.end();
});
server.listen(port, host, () => {
console.log('Bezi server ' + host + ":" + port);
});
Základem je modul http, což je vlastně webový server, který ale musíme narozdíl od PHP sami spustit. Pomocí http modulu můžeme pracovat se vším co na server přichází i odchází, detailní popis můžete najít v oficiální dokumentaci. Vytvoříme si tedy proměnnou http, kterou budeme dále využijeme k vytvoření serveru.
Dále si musíme stanovit adresu a port, na kterém náš server poběží. Nyní si můžeme vytvořit náš server pomocí metody createServer(). Server má callback, který je volán při každém jednotlivém požadavku. Základním parametry pro callback jsou request - objekt pro práci s požadavkem na server a response sloužící naopak k odpovědi ze serveru.
V samotném těle této anonymní funkce se pak odehrává celé divadlo. V našem příkladu pracujeme pouze s objektem pro odpověď, kterému nastavíme StatusCode na 200 (stav vše v pořádku), dále Content-Type na text/hml, který prohlížeči říká, že navracíme html kód. Nyní přejdeme k samotnému výpisu dat, který řeší metoda write(). Té můžeme předat naše výstupní HTML, a to klidně opakovaně. Na závěr musíme zavolat metodu end(), které můžeme taktéž předat výstup jako u write(). Zavolání end() serveru říká, že již všechny hlavičky a tělo odpovědi byly odeslány. End() musí být zavolána na konci každé odpovědi.
Na závěr náš server nastartujeme pomocí metody listen(), které předáme adresu a port, na které má náš server běžet. Uvnitř té ještě vypíšeme kontrolní potvrzení o běhu. Nyní můžeme celý soubor uložit jako hello.js.
Pracujeme s Node.js z příkazového řádku
Pojďme si to vyzkoušet, ale... budeme potřebovat příkazový řádek. Pokud na něj nejste zvyklý, bude se vhodné naučit alespoň základy, protože v Nose.js s ním budeme často pracovat.V příkazovém řádku nalistujeme do adresáře ve kterém máme náš soubor uložený a poté ho spustíme příkazem:
node hello.js
Pokud jste udělali vše správně, odměnou vám bude text informující o běžícím serveru:
Bezi server 127.0.0.2:2222
Nyní přejdeme do prohlížeče který používáme a zadáme adresu http://127.0.0.2:2222/. Na výstupu uvidíme náš první Hello World!. Pokud budeme chtít nás server ukončit v příkazovém řádku s běžícím serverem stiskneme klávesovou zkratku ctrl + c.
Dnes jsme si vyzkoušeli napsat a spustit svoji první aplikaci v Node.js. Příště se však opět vrátíme k troše teorie a povíme si o balíčkovém systému npm, bez kterého se v Node.js neobejdeme.
Další díly tutoriálu
1. Co je to Node.js + instalace2. Hello world!
3. Balíčkovací systém NPM + package.json
4. Co je to REST API