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()reqargument, 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:

http://localhost:8080/summer

Vytvoří tento výsledek:

/summer

http://localhost:8080/winter

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 .