Modul HTTP Node.js
Vestavěný modul HTTP
Node.js má vestavěný modul nazvaný HTTP, který umožňuje Node.js přenášet data přes Hyper Text Transfer Protocol (HTTP).
Chcete-li zahrnout modul HTTP, použijte
require()
metodu:
var http = require('http');
Node.js jako webový server
Modul HTTP může vytvořit server HTTP, který naslouchá portům serveru a poskytuje odpověď klientovi.
Použijte createServer()
metodu k vytvoření serveru HTTP:
Příklad
var http = require('http');
//create a server object:
http.createServer(function
(req, res) {
res.write('Hello World!'); //write a response to the
client
res.end(); //end the response
}).listen(8080); //the
server object listens on port 8080
Funkce předaná do http.createServer()
metody bude provedena, když se někdo pokusí o přístup k počítači na portu 8080.
Uložte výše uvedený kód do souboru s názvem „demo_http.js“ a spusťte soubor:
Spustit demo_http.js:
C:\Users\Your Name>node demo_http.js
Pokud jste na svém počítači provedli stejné kroky, uvidíte stejný výsledek jako v příkladu: http://localhost:8080
Přidejte záhlaví HTTP
Pokud má být odpověď z HTTP serveru zobrazena jako HTML, měli byste zahrnout HTTP hlavičku se správným typem obsahu:
Příklad
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200,
{'Content-Type': 'text/html'});
res.write('Hello
World!');
res.end();
}).listen(8080);
Prvním argumentem res.writeHead()
metody je stavový kód, 200 znamená, že je vše v pořádku, druhým argumentem je objekt obsahující hlavičky odpovědí.
Přečtěte si řetězec dotazu
Funkce předaná do http.createServer()
má req
argument, který představuje požadavek od klienta jako objekt (objekt http.IncomingMessage).
Tento objekt má vlastnost zvanou „url“, která obsahuje část adresy URL, která následuje za názvem domény:
demo_http_url.js
var http = require('http');
http.createServer(function
(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(req.url);
res.end();
}).listen(8080);
Uložte výše uvedený kód do souboru s názvem „demo_http_url.js“ a spusťte soubor:
Spustit demo_http_url.js:
C:\Users\Your Name>node demo_http_url.js
Pokud jste na počítači provedli stejné kroky, měli byste při otevření těchto dvou adres vidět dva různé výsledky:
Vytvoří tento výsledek:
/summer
Vytvoří tento výsledek:
/winter
Rozdělit řetězec dotazu
Existují vestavěné moduly pro snadné rozdělení řetězce dotazu na čitelné části, jako je například modul URL.
Příklad
Rozdělte řetězec dotazu na čitelné části:
var http = require('http');
var url = require('url');
http.createServer(function (req, res) {
res.writeHead(200,
{'Content-Type': 'text/html'});
var q = url.parse(req.url,
true).query;
var txt = q.year + " " +
q.month;
res.end(txt);
}).listen(8080);
Uložte výše uvedený kód do souboru s názvem „demo_querystring.js“ a spusťte soubor:
Spusťte demo_querystring.js:
C:\Users\Your Name>node demo_querystring.js
Adresa:
Vytvoří tento výsledek:
2017 July
Přečtěte si více o modulu URL v kapitole Node.js URL Module .