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 req
argument, 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:
Daje ten wynik:
/summer
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.