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!