Mô-đun URL Node.js
Mô-đun URL tích hợp
Mô-đun URL chia địa chỉ web thành các phần có thể đọc được.
Để bao gồm mô-đun URL, hãy sử dụng phương thức require()
:
var url = require('url');
Phân tích một địa chỉ bằng phương thức url.parse()
và nó sẽ trả về một đối tượng URL với mỗi phần của địa chỉ là thuộc tính:
Ví dụ
Chia địa chỉ web thành các phần có thể đọc được:
var url = require('url');
var adr = 'https://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'
Chạy ví dụ »Máy chủ tệp Node.js
Bây giờ chúng ta đã biết cách phân tích 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 mà khách hàng yêu cầu.
Tạo hai tệp html và lưu chúng vào cùng thư mục với tệp node.js của bạn.
mùa hè.html
<!DOCTYPE html>
<html>
<body>
<h1>Summer</h1>
<p>I love
the sun!</p>
</body>
</html>
mùa đông.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ả về nội dung cho máy khách. Nếu có vấn đề gì xảy ra, hãy đưa ra 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 tin:
Bắt đầu 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, bạn sẽ thấy hai kết quả khác nhau khi mở hai địa chỉ này:
https://localhost:8080/summer.html
Sẽ tạo ra kết quả này:
Summer
I love the sun!
https://localhost:8080/winter.html
Sẽ tạo ra kết quả này:
Winter
I love the snow!