Mô-đun HTTP Node.js


Mô-đun HTTP tích hợp

Node.js có một mô-đun tích hợp được gọi là HTTP, cho phép Node.js truyền dữ liệu qua Giao thức truyền siêu văn bản (HTTP).

Để bao gồm mô-đun HTTP, hãy sử dụng require()phương pháp:

var http = require('http');

Node.js như một Máy chủ Web

Mô-đun HTTP có thể tạo một máy chủ HTTP lắng nghe các cổng máy chủ và đưa ra phản hồi lại cho máy khách.

Sử dụng createServer()phương pháp để tạo máy chủ HTTP:

Thí dụ

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

Hàm được truyền vào http.createServer() phương thức, sẽ được thực thi khi ai đó cố gắng truy cập vào máy tính trên cổng 8080.

Lưu mã ở trên vào tệp có tên "demo_http.js" và khởi tạo tệp:

Bắt đầu demo_http.js:

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

Nếu bạn đã làm theo các bước tương tự trên máy tính của mình, bạn sẽ thấy kết quả tương tự như ví dụ: http: // localhost: 8080



Thêm tiêu đề HTTP

Nếu phản hồi từ máy chủ HTTP được cho là hiển thị dưới dạng HTML, bạn nên bao gồm tiêu đề HTTP với loại nội dung chính xác:

Thí dụ

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

Đối số đầu tiên của res.writeHead()phương thức là mã trạng thái, 200 có nghĩa là tất cả đều OK, đối số thứ hai là một đối tượng chứa các tiêu đề phản hồi.


Đọc chuỗi truy vấn

Hàm được truyền vào http.createServer() có một reqđối số đại diện cho yêu cầu từ máy khách, dưới dạng một đối tượng (đối tượng http.IncomingMessage).

Đối tượng này có một thuộc tính gọi là "url" chứa một phần của url đứng sau tên miền:

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

Lưu mã ở trên trong một tệp có tên "demo_http_url.js" và khởi tạo tệp:

Bắt đầu demo_http_url.js:

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

Nếu bạn đã làm theo các bước tương tự trên máy tính của mình, bạn sẽ thấy hai kết quả khác nhau khi mở hai địa chỉ này:

http: // localhost: 8080 / mùa hè

Sẽ tạo ra kết quả này:

/summer

http: // localhost: 8080 / mùa đông

Sẽ tạo ra kết quả này:

/winter

Tách chuỗi truy vấn

Có các mô-đun tích hợp để dễ dàng chia chuỗi truy vấn thành các phần có thể đọc được, chẳng hạn như mô-đun URL.

Thí dụ

Chia chuỗi truy vấn thành các phần có thể đọc được:

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

Lưu mã ở trên vào một tệp có tên "demo_querystring.js" và khởi tạo tệp:

Khởi tạo demo_querystring.js:

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

Địa chỉ:

Sẽ tạo ra kết quả này:

2017 July

Đọc thêm về mô-đun URL trong chương Mô-đun URL Node.js.