Node.js: Module http Node.js

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

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

Để tích hợp mô-đun HTTP thì ta sử dụng phương thức require():

var http = require('http');

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

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 phương thức createServer() để tạo máy chủ HTTP như ví dụ sau:

var http = require('http');

//tạo một đối tượng server:
http.createServer(function (req, res) {
  res.write('Demo module HTTP!'); //ghi một phản hồi tới máy khách
  res.end(); //kết thúc phản hồi
}).listen(8080); //đối tượng server sẽ lắng nghe trên cổng 8080

Ở đây phương thức http.createServer() sẽ truyền đi một hàm, và nó 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 như sau:

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

Tiến hành chạy ứng dụng: 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 thì ta nên tích hợp tiêu đề HTTP với loại nội dung chính xác:

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 phương thức res.writeHead() là mã trạng thái, mã 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 phương thức http.createServer() có một đối số là req đạ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:

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 vào tệp có tên "demo_http_url.js" và khởi tạo tệp:

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

Tiến hành thực thi để xem kết quả: http://localhost: 8080/v1study

Kết quả:

/v1study

Ta lại tiến hành thực thi như sau: http://localhost: 8080/v1study.com

Kết quả:

/v1study.com

Tách chuỗi truy vấn

Có các mô-đun tích hợp có thể 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 như ví dụ sau:

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:

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

Thực thi: http://localhost: 8080/?year=2021&month=April

Kết quả:

2021 April

Đọc thêm về mô-đun URL trong bài viết Module url trong Node.js.

» Tiếp: Module fs (File System)
« Trước: Module trong Node.js
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!