Quay về Mục lục NodeJS
01-Module có sẵn HTTP
NODEJS có 01 module xây dựng sẵn tên là HTTP cho phép NODEJS
chuyển dữ liệu dựa trên phương thức HTTP.
Để đính kèm module HTTP, ta dùng phương thức require()
var http = require('http');
02-NODEJS như là 01 máy chủ WEB
Module HTTP có thể tạo 01 máy chủ HTTP có khả năng lắng nghe
các cổng của máy chủ và phản hồi về người dùng.
Ta dùng phương thức createServer()
để tạo máy chủ HTTP.
Ví dụ:
var http = require('http');
//tạo 01 đối tượng máy chủ:
http.createServer(function (req, res) {
res.write('Xin chào NODEJS!'); //viết phản hồi trả về người dùng
res.end(); //kết thúc phản hồi
}).listen(8080); //đối tượng máy chủ lắng nghe trên cổng 8080
//tạo 01 đối tượng máy chủ:
http.createServer(function (req, res) {
res.write('Xin chào NODEJS!'); //viết phản hồi trả về người dùng
res.end(); //kết thúc phản hồi
}).listen(8080); //đối tượng máy chủ lắng nghe trên cổng 8080
Hàm đặt trong phương thức http.createServer(),
sẽ được thực thi khi người dùng nào đó cố gắng truy cập máy chủ trên cổng 8080.
Lưu mã này lại với tên “demo_http.js”
và khởi chạy tập tin bằng lệnh CMD như sau:
d:/NODE/node demo_http.js
Nếu bạn làm đúng=>mở trình duyệt và vào đường dẫn sau sẽ
thấy kết quả: http://localhost:8080
03-Thêm vào 01 HTTP Header
Nếu phản hồi trả về từ máy chủ HTTP có hiển thị dạng HTML,
ta phải đính kèm 01 HTTP header với đúng loại nội dung.
Ví 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);
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('Hello World!');
res.end();
}).listen(8080);
Tham số đầu tiên của phương thức res.writeHead() là mã tình trạng
,200 nghĩa là mọi thứ OK.
Tham số thứ 02 là 01 đối tượng chứa các headers trả về người
dùng.
04-Đọc câu truy vấn
Hàm trong phương thức http.createServer() có 01 tham số req,
đại diện cho yêu cầu từ người dùng, như là 01 đối tượng ( đối tượng http.IncomingMessage).
Đối tượng này có 01 thuộc tính gọi là “url” lưu giữu phần
đuôi của liên kết nằm sau phần 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);
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(req.url);
res.end();
}).listen(8080);
Lưu đoạn mà trên vào tập tin tên là “demo_http_url.js” và khởi
chạy nó.
D:/NODE node demo_http_url.js
Nếu làm đúng thì kết quả sẽ trả về khi ta truy cập vào trình
duyệt: http://localhost:8080/drM
Kết quả hiện ra là: /drM
05-Cắt câu truy vấn
Có những module dựng sẵn giúp ta dễ dàng cắt câu truy vấn thành
các phần có thể đọc được, ví dụ như module URL.
Ví dụ:
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);
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 đoạn mã trên thành tập tin “demo_querystring.js”
và khởi chạy nó
D:/NODE
node demo_querystring.js
Liên kết là: http://localhost:8080/?year=2020&month=March
Kết quả trả ra sẽ là: 2020 March
Ta sẽ học kỹ về module URL trong BÀI 05-MODULE URL
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:
Các bạn hãy bấm nút LIKE và SHARE để mình có động lực viết thêm nhiều nhiều bài viết nữa.
By #drM
Không có nhận xét nào:
Đăng nhận xét