Moduł HTTP Node.js


Wbudowany moduł HTTP

Node.js ma wbudowany moduł o nazwie HTTP, który umożliwia Node.js przesyłanie danych przez protokół Hyper Text Transfer Protocol (HTTP).

Aby dołączyć moduł HTTP, użyj require()metody:

var http = require('http');

Node.js jako serwer WWW

Moduł HTTP może utworzyć serwer HTTP, który nasłuchuje portów serwera i zwraca odpowiedź klientowi.

Użyj createServer()metody, aby utworzyć serwer HTTP:

Przykład

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

Funkcja przekazana do http.createServer() metody zostanie wykonana, gdy ktoś spróbuje uzyskać dostęp do komputera na porcie 8080.

Zapisz powyższy kod w pliku o nazwie „demo_http.js” i zainicjuj plik:

Zainicjuj demo_http.js:

C:\Users\Your Name>node demo_http.js

Jeśli wykonałeś te same kroki na swoim komputerze, zobaczysz taki sam wynik jak w przykładzie: http://localhost:8080



Dodaj nagłówek HTTP

Jeżeli odpowiedź z serwera HTTP ma być wyświetlana jako HTML, należy dołączyć nagłówek HTTP z poprawnym typem treści:

Przykład

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('Hello World!');
  res.end();
}).listen(8080);

Pierwszym argumentem res.writeHead()metody jest kod statusu, 200 oznacza, że ​​wszystko jest w porządku, drugim argumentem jest obiekt zawierający nagłówki odpowiedzi.


Przeczytaj ciąg zapytania

Funkcja przekazana do http.createServer() ma reqargument, który reprezentuje żądanie klienta jako obiekt (obiekt http.IncomingMessage).

Ten obiekt ma właściwość o nazwie „url”, która zawiera część adresu URL, która występuje po nazwie domeny:

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);

Zapisz powyższy kod w pliku o nazwie „demo_http_url.js” i zainicjuj plik:

Zainicjuj demo_http_url.js:

C:\Users\Your Name>node demo_http_url.js

Jeśli wykonałeś te same kroki na swoim komputerze, powinieneś zobaczyć dwa różne wyniki podczas otwierania tych dwóch adresów:

http://localhost:8080/lato

Daje ten wynik:

/summer

http://localhost:8080/zima

Daje ten wynik:

/winter

Podziel ciąg zapytania

Istnieją wbudowane moduły do ​​łatwego dzielenia ciągu zapytania na czytelne części, takie jak moduł URL.

Przykład

Podziel ciąg zapytania na czytelne części:

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);

Zapisz powyższy kod w pliku o nazwie „demo_querystring.js” i zainicjuj plik:

Zainicjuj demo_querystring.js:

C:\Users\Your Name>node demo_querystring.js

Adres:

Daje ten wynik:

2017 July

Przeczytaj więcej o module URL w rozdziale Moduł URL Node.js.