NTM Solutions

Thứ Sáu, 5 tháng 6, 2020

KHÓA HỌC NODEJS-BÀI 05-MODULE URL

Xem Mục lục Lâp trình NodeJS

Module URL dựng sẵn

Module URL chia 01 địa chỉ web thành các phần nhỏ hơn có thể đọc được.

Để đính kèm module URL, ta dùng phương thức require()

var url = require('url');

Ta đưa 01 địa chỉ vào bằng phương thức url.parse() , và nó sẽ trả về 01 đối tượng URL  với các phần của địa chỉ như là các thuộc tính.

Ví dụ: chia các phần địa chỉ web ra

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); 
//trả về 'localhost:8080'
console.log(q.pathname); //trả về '/default.htm'
console.log(q.search); //trả về '?year=2017&month=february'

var qdata = q.query//trả về 01 đối tượng: { year: 2017, month: 'february' }
console.log(qdata.month); //trả về 'february'

Máy chủ tập tin NODEJS

Bây giờ chúng ta biết cách đưa chuỗi truy vấn vào, và trong chương trước chúng ta đã đã học cách làm cho NODEJS cư xử như là 01 máy chủ tập tin.

Bây giờ chúng ta sẽ nhập 02 tập tin lại và trả về nội dung người dùng đã yêu cầu.

Tạo 02 tập tin html và lưu chúng cùng thư mục với các tập tin NODEJS.

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 01 tập tin NODEJS mở tập tin đã được yêu cầu và trả về nội dung cho người dùng. Nếu có lỗi gì sẽ trả về 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.urltrue);
  
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);

Nhớ khởi chạy nó trên CMD:

D:/NODE/node demo_fileserver.js

Nếu làm đúng theo hướng dẫn, bạn sẽ thấy 02 kết quả khác nhau khi gõ 02 đường dẫn sau trên trình duyệt:

http://localhost:8080/summer.html

Kết quả trả ra là:

Summer
I love the sun!

Kết quả trả ra là:

Winter
I love the snow!

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

Facebook Youtube RSS