CĂN BẢN
SERVER
MYSQL
MONGODB
MODULE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Module Path trong NodeJS

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

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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/freetuts.png'); // Kết quả freetuts.png
path.basename('public/image/freetuts.png', '.png'); // Kết quả freetuts

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/freetuts/logo.png'); 
// Kết quả: public/demo/freetuts

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('freetuts.html')
// Kết quả '.html'

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

path.extname('freetuts.')
// Kết quả '.'

path.extname('freetuts')
// Kết quả ''

path.extname('.freetuts')
// 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

Cùng chuyên mục:

Crawl dữ liệu website bằng NodeJS cơ bản

Crawl dữ liệu website bằng NodeJS cơ bản

CORS là gì ? Xử lý CORS trong NodeJS

CORS là gì ? Xử lý CORS trong NodeJS

Chắc hẳn trong quá trình xử lý các request tới server thì một vài trường…

Xử lý form trong Express

Xử lý form trong Express

Xây dựng URL trong Express

Xây dựng URL trong Express

Trong bài viết này chúng ta sẽ cùng nhau đi tìm hiểu về cách xây…

Populate trong Mongoose

Populate trong Mongoose

Error Handling & Debugging trong Socket.io

Error Handling & Debugging trong Socket.io

Namespaces & Rooms trong Socket.io

Namespaces & Rooms trong Socket.io

Middleware trong Mongoose

Middleware trong Mongoose

Create / Read / Update / Delete trong Mongoose

Create / Read / Update / Delete trong Mongoose

Validation trong Mongoose

Validation trong Mongoose

Subdocuments trong Mongooose

Subdocuments trong Mongooose

Documents trong Mongoose

Documents trong Mongoose

Trong bài viết này chúng ta sẽ tìm hiểu về documents trong Mongoose

Models trong Mongoose

Models trong Mongoose

SchemaTypes trong Mongoose

SchemaTypes trong Mongoose

Schemas trong Mongoose

Schemas trong Mongoose

Mongoose trong NodeJS

Mongoose trong NodeJS

Làm việc với Table MySQL sử dụng Nodejs

Làm việc với Table MySQL sử dụng Nodejs

Kết nối với MongoDB trong NodeJS

Kết nối với MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Giới thiệu MongoDB trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Insert / Update / Delete / Select MySQL trong NodeJS

Top