Ví dụ Module Path trong NodeJS

Ví dụ Module Path trong NodeJS là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Ví dụ Module Path trong NodeJS sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và NodeJS nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Thông thường chúng ta có các thao tác xử lý đường dẫn file và tên file như lấy đường dẫn trỏ tới thư mục, lấy tên file trong đường dẫn, lấy phần mở rộng của file, ... tất cả các thao tác này trong Javascript không hỗ trợ, vì vậy bạn sẽ phải tự viết. Đấy là nói về Javascript, còn NodeJS thì những thao tác đó thường xuyên được sử dụng, vì vậy NodeJS đã cung cấp cho chung ta một module rất tiện lợi đó là module Path.

Trước khi sử dụng module này thì phải chắc chắn là bạn đã require nó vào nhé.


  var path = require('path'); 

Sau đây là những hàm được hỗ trợ trong module Path.

1. Lấy tên file - path.basename(path[, ext])

Hàm path.basename() dùng để lấy tên file. Nó có hai cách sử dụng như sau:


  path.basename('public/image/Hoidapcode.png'); // Kết quả Hoidapcode.png  
path.basename('public/image/Hoidapcode.png', '.png'); // Kết quả Hoidapcode 

2. Ký tự phân cách giữa các đường dẫn - path.delimiter

Mỗi hệ điều hành có một ký tự phân cách giữa các đường dẫn khác nhau. Ví dụ với Window thì sử dụng ký tự ; , trên Nix thì dùng ký tự :. Vì vậy module Path cung cấp một thuộc tính lưu trữ giá trị này và dù bạn chạy ở hệ điều hành nào thì chương trình vẫn hoạt động tốt.


  console.log(path.delimiter); // Trên Window: ;  
console.log(path.delimiter); // Trên Linux: : 

3. Lấy đường dẫn folder của file - path.dirname(path)

Hàm này giúp lấy đường dẫn tới folder của file.

  path.dirname('/public/demo/Hoidapcode/logo.png');   // Kết quả: public/demo/Hoidapcode 

4. Lấy phần đuôi mở rộng của file - path.extname(path)

Lấy giá trị đằng sau dấu chấm của file, tuy nhiên có một số trường hợp đặc biệt (xem ví dụ).

  path.extname('Hoidapcode.html')  // Kết quả '.html'    
path.extname('Hoidapcode.coffee.md')  // Kết quả '.md'    
path.extname('Hoidapcode.')  // Kết quả '.'    
path.extname('Hoidapcode')  // Kết quả ''    
path.extname('.Hoidapcode')  // Kết quả '' 


5. Lấy Path String từ một Object - path.format(object)

Hàm này sẽ return về một đường dẫn với giá trị được nối bởi các phần tử của Object. Object sẽ có 5 phần tử gồm:

  • root
  • dir
  • base
  • ext
  • name

Chúng ta sẽ có một số trường hợp như sau.

Trường hợp 1: Nếu dir và base được cung cấp thì kết quả sẽ trả về là dir + base.

  path.format({      dir: '/home/user/dir',      base: 'file.txt'  });  // Kết quả '/home/user/dir/file.txt' 

Trường hợp 2: root sẽ được sử dụng nếu không có dir

  path.format({      root: '/',      base: 'file.txt'  });  // Kết quả '/file.txt' 

Trường hợp 3: name + ext được sử dụng nếu không có base

  path.format({      dir: '/',      name: 'file',      ext: '.txt'  });  // Kết quả '/file.txt' 

Trường hợp 4: Nếu dir và root đều được sử dụng thì chúng sẽ được kết hợp với nhau.

  path.format({      root : "C:\\",      dir : "C:\\path\\dir",      base : "file.txt",      ext : ".txt",      name : "file"  });  // Kết quả 'C:\\path\\dir\\file.txt' 

Trường hợp 5: Nếu chỉ có base thôi thì sẽ return về base.

  path.format({      base: 'file.txt'  });  // Kết quả 'file.txt' 


6. Kiểm tra đường dẫn tuyệt đối - path.isAbsolute(path)

Hàm này kiểm tra path có phải là một đường dẫn tuyệt đối hay không.

Trên *nix:

  path.isAbsolute('/foo/bar'); // true  
path.isAbsolute('/baz/..') ; // true  
path.isAbsolute('qux/') ;    // false  
path.isAbsolute('.') ;       // false 

Trên Window:

  path.isAbsolute('//server');  // true  
path.isAbsolute('C:/foo/..'); // true  
path.isAbsolute('bar\\baz');  // false  
path.isAbsolute('.');         // false 


7. Nối các tham số thành một đường dẫn - path.join([path1][, path2][, ...])

Hàm này se nối các tham số truyền vào thành một đường dẫn.

  path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')  // Kết quả '/foo/bar/baz/asdf 

8. Làm sạch đường dẫn - path.normalize(path)

Hàm này sẽ làm sạch đường dẫn truyền vào.

  path.normalize('/foo/bar//baz/asdf/quux/..');  // Kết quả '/foo/bar/baz/asdf' 


9. Chuyển path thành một object - path.parse(path)

Hàm này có chức năng ngược với hàm path.format.

Trên *nix:


path.parse('/home/user/dir/file.txt');
// Kết quả
// {
//    root : "/",
//    dir : "/home/user/dir",
//    base : "file.txt",
//    ext : ".txt",
//    name : "file"
// } 

Trên Window:

 path.parse('C:\\path\\dir\\index.html');
// Kết quả
// {
//    root : "C:\\",
//    dir : "C:\\path\\dir",
//    base : "index.html",
//    ext : ".html",
//    name : "index"
// } 

10: Ký tự phân cách - path.sep

Tham số này chứa ký tự phân cách tùy vào mỗi hệ điều hành sẽ có giá trị khác nhau.

Trên *nix:

  'foo/bar/baz'.split(path.sep);  // returns ['foo', 'bar', 'baz'] 

Trên Window:

  'foo\\bar\\baz'.split(path.sep);  // returns ['foo', 'bar', 'baz'] 


11. Chạy một tập lệnh di chuyển cd - path.resolve([from ...], to)

Giống như bạn đang sử dụng cmd.

Ví dụ:

  path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile'); 

Tương đương với:

  cd foo/bar
cd /tmp/file/
cd ..
cd a/../subfile
pwd 

Trên là tổng hợp 11 hàm và thuộc tính của module path trong NodeJS, các hàm và thuộc tính này thường được hay sử dụng để xử lý đường dẫn của file

Hy vọng với bài viết về Ví dụ Module Path trong NodeJS đã giải đáp giúp bạn phần nào về kiến thức lập trình NodeJS. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!