Mô-đun URL Node.js
Mô-đun URL tích hợp
Mô-đun URL chia một địa chỉ web thành các phần có thể đọc được.
Để bao gồm mô-đun URL, hãy sử dụng require()
phương pháp:
var url = require('url');
Phân tích cú pháp một địa chỉ bằng url.parse()
phương thức và nó sẽ trả về một đối tượng URL với mỗi phần của địa chỉ là các thuộc tính:
Thí dụ
Chia địa chỉ web thành các phần có thể đọc được:
var url = require('url');
var adr = 'http://localhost:8080/default.htm?year=2017&month=february';
var q = url.parse(adr, true);
console.log(q.host); //returns 'localhost:8080'
console.log(q.pathname); //returns '/default.htm'
console.log(q.search); //returns '?year=2017&month=february'
var qdata = q.query; //returns an object: { year: 2017, month: 'february' }
console.log(qdata.month); //returns 'february'
Máy chủ tệp Node.js
Bây giờ chúng ta đã biết cách phân tích cú pháp chuỗi truy vấn và trong chương trước, chúng ta đã học cách làm cho Node.js hoạt động như một máy chủ tệp. Hãy để chúng tôi kết hợp cả hai và phục vụ tệp do khách hàng yêu cầu.
Tạo hai tệp html và lưu chúng trong cùng một thư mục với tệp node.js của bạn.
summer.html
<!DOCTYPE html>
<html>
<body>
<h1>Summer</h1>
<p>I love
the sun!</p>
</body>
</html>
Winter.html
<!DOCTYPE html>
<html>
<body>
<h1>Winter</h1>
<p>I love
the snow!</p>
</body>
</html>
Tạo tệp Node.js để mở tệp được yêu cầu và trả lại nội dung cho máy khách. Nếu có gì sai, hãy ghi lỗi 404:
demo_fileserver.js:
var http = require('http');
var url = require('url');
var fs = require('fs');
http.createServer(function
(req, res) {
var q = url.parse(req.url, true);
var
filename = "." + q.pathname;
fs.readFile(filename,
function(err, data) {
if (err) {
res.writeHead(404, {'Content-Type': 'text/html'});
return res.end("404 Not Found");
}
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
return res.end();
});
}).listen(8080);
Hãy nhớ khởi tạo tệp:
Khởi tạo demo_fileserver.js:
C:\Users\Your Name>node demo_fileserver.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 / summer.html
Sẽ tạo ra kết quả này:
Summer
I love the sun!
http: // localhost: 8080 / Winter.html
Sẽ tạo ra kết quả này:
Winter
I love the snow!