Hướng dẫn path trong nodejs

path Module trong được sử dụng để Resolve và chuyển đổi các đường dẫn tới file. Module này có thể được inport theo cú pháp:

var path = require("path")

Phương thức của path Module trong Node.js

SttPhương thức & Miêu tả1path.normalize(p)
Chuẩn hóa đường dẫn2path.join([path1][, path2][, ...])
Kết hợp tất cả các tham số là đường dẫn với nhau và sau đó chuẩn hóa đường dẫn kết quả tạo ra3path.resolve([from ...], to)
Resolve một đường dẫn tuyệt đối.4path.isAbsolute(path)
Xác định xem đó có phải là đường dẫn tuyệt đối không. Một đường dẫn tuyệt đối luôn luôn trỏ đến cùng một vị trí, bất kể thư mục đang làm việc là gì.5path.relative(from, to)
Resolve một đường dẫn tương đối.6path.dirname(p)
Trả về tên thư mục của một đường dẫn.7path.basename(p[, ext])
Trả về phần cuối cùng của một đường dẫn8path.extname(p)
Trả về đuôi của đường dẫn (ví dụ txt)9path.parse(pathString)
Trả về một đối tượng từ một chuỗi biểu diễn đường dẫn10path.format(pathObject)
Trả về một chuỗi biểu diễn đường dẫn từ một đối tượng, phương thức này trái ngược với phương thức path.parse trên.

Thuộc tính của path Module trong Node.js

SttThuộc tính & Miêu tả1path.sep
Biểu thị File Separator của nền tảng cụ thể. Nó có thể là '\\' hoặc '/'.2path.delimiter
Biểu thị Path Delimiter của nền tảng cụ thể, có thể là ';' hoặc ':'.

Ví dụ

Ví dụ dưới đây minh họa cách sử dụng một số phương thức và thuộc tính của path Module trong Node.js. Bạn tạo main.js có nội dung sau:

var path = require("path");

// Chuan hoa duong dan voi phuong thuc normalize()
console.log('Phuong thuc NORMALIZE : ' + path.normalize('/test/test1//2slashes/1slash/tab/..'));

// Ket hop cac tham so dau vao de tao mot duong dan
console.log('Phuong thuc JOIN : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..'));

// Resolve mot duong dan tuyet doi
console.log('Phuong thuc RESOLVE : ' + path.resolve('main.js'));

// Lay thong tin cua duoi duong dan
console.log('Phuong thuc EXTNAME : ' + path.extname('main.js'));

Chạy main.js để xem kết quả::

$ node main.js

Kiểm tra kết quả.

Phuong thuc NORMALIZE : /test/test1/2slashes/1slash
Phuong thuc JOIN : /test/test1/2slashes/1slash
Phuong thuc RESOLVE : /web/com/1427176256_27423/main.js
Phuong thuc EXTNAME : .js

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Hướng dẫn path trong nodejs

Hướng dẫn path trong nodejs

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Path Module trong Node.js được sử dụng để thao tác với đường dẫn của các tập tin. Cú pháp để import path Module:

var path = require("path")



Phương thức của path Module trong Node.js

SttPhương thức & Mô tả1path.normalize(p)
Chuẩn hóa đường dẫn2path.join([path1][, path2][, ...])
Kết hợp tất cả các tham số là đường dẫn với nhau và sau đó chuẩn hóa đường dẫn kết quả tạo ra3path.resolve([from ...], to)
Resolve một đường dẫn tuyệt đối.4path.isAbsolute(path)
Xác định xem đó có phải là đường dẫn tuyệt đối không. Một đường dẫn tuyệt đối luôn luôn trỏ đến cùng một vị trí, bất kể thư mục đang làm việc là gì.5path.relative(from, to)
Resolve một đường dẫn tương đối.6path.dirname(p)
Trả về tên thư mục của một đường dẫn.7path.basename(p[, ext])
Trả về phần cuối cùng của một đường dẫn8path.extname(p)
Trả về đuôi của đường dẫn (ví dụ txt)9path.parse(pathString)
Trả về một đối tượng từ một chuỗi biểu diễn đường dẫn10path.format(pathObject)
Trả về một chuỗi biểu diễn đường dẫn từ một đối tượng, phương thức này trái ngược với phương thức path.parse trên.

Thuộc tính của path Module trong Node.js

SttThuộc tính & Mô tả1path.sep
Biểu thị File Separator của nền tảng cụ thể. Nó có thể là '\\' hoặc '/'.2path.delimiter
Biểu thị Path Delimiter của nền tảng cụ thể, có thể là ';' hoặc ':'.


Ví dụ sử dụng Path Module trong Node.js

Ví dụ dưới đây minh họa cách sử dụng một số phương thức và thuộc tính của path Module trong Node.js. Tạo main.js có nội dung sau:

Mình tin là 96% là bạn đã từng hoặc đã gặp nó trong các dự án Javascript nói chung, NodeJS nói riêng rồi đấy.

Bởi vì nó đơn giản, dễ viết, khỏi cần cấu hình gì cả.

Dấu hai chấm (../) trong ví dụ trên là cách viết đường dẫn tương đối (Module Path) từ một thư mục tới thư mục đích. Bạn hiểu đơn giản là cứ mỗi dấu (../) là lùi về thư mục cha. Để dễ hình dung, giả sử mình có một cấu trúc thư mục cho dự án như sau:

src
  └── modules/
      ├── mainApp
      │   └── view  ============= Cứ lùi một cấp thư mục là một dấu  (../)
│		└── main.js   ============= Bạn đang ở đây. 
│
└── plugins
    └── very-important-plugins
        └── models
            └── DBUtils.js

Tại main.js, mình muốn require(...) DBUtils. Vậy để trỏ tới được DBUtils, bạn cần phải lùi tới thư mục modules, rồi mới tiến tới thư mục plugins và đi sâu vào trong. Kết quả sẽ có câu lệnh require(...) như sau:

const DBUtils = require('../../plugins/very-important-plugins/models/DBUtils.js')

Tuy nhiên, sẽ chẳng có gì đáng nói nếu dự án bắt đầu phức tạp dần, cấu trúc thư mục bắt đầu lằng nhằng hơn, bạn sẽ cần phải require(...) cùng module đó ở những nơi khác nhau. Thế là bạn cứ phải dò lại xem mình đang ở thư mục nào, cần mấy dấu hai chấm (..) để trỏ tới đúng thư mục chứa module cần require(...).

Dưới đây là cách để bạn khắc phục nhược điểm của cách viết trên.

Sử dụng module Alias

Ý tưởng để khắc phục nhược điểm của cách viết trên là chúng ta sẽ viết đường dẫn mà điểm xuất phát luôn là thư mục root của dự án, ví dụ thư mục

src
  └── modules/
      ├── mainApp
      │   └── view  ============= Cứ lùi một cấp thư mục là một dấu  (../)
│		└── main.js   ============= Bạn đang ở đây. 
│
└── plugins
    └── very-important-plugins
        └── models
            └── DBUtils.js
2 (hoặc một thư mục nào đó mà bạn chỉ định trước). Từ đó, bạn sẽ không cần lùi thư mục về thư mục cha nữa.

Kiểu như khi bạn ở lưng chừng núi, bạn sẽ không cần phải leo lên đỉnh núi rùi mới đi xuống chỗ cần tới. Thay vào đó, bạn luôn luôn ở trên đỉnh núi, cần là xuống tới đúng chỗ luôn.

Có một package hỗ trợ bạn làm điều đó dễ dàng. Đó là module-alias.

Cài đặt:

npm i --save module-alias

Thêm cấu hình trong

src
  └── modules/
      ├── mainApp
      │   └── view  ============= Cứ lùi một cấp thư mục là một dấu  (../)
│		└── main.js   ============= Bạn đang ở đây. 
│
└── plugins
    └── very-important-plugins
        └── models
            └── DBUtils.js
3

{
    "_moduleAliases": {
        "@": "src",
        "@libs": "src/modules/plugins"
    }
}

Như cách cấu hình trên, ký tự

src
  └── modules/
      ├── mainApp
      │   └── view  ============= Cứ lùi một cấp thư mục là một dấu  (../)
│		└── main.js   ============= Bạn đang ở đây. 
│
└── plugins
    └── very-important-plugins
        └── models
            └── DBUtils.js
4 là sẽ trở tới thư mục
src
  └── modules/
      ├── mainApp
      │   └── view  ============= Cứ lùi một cấp thư mục là một dấu  (../)
│		└── main.js   ============= Bạn đang ở đây. 
│
└── plugins
    └── very-important-plugins
        └── models
            └── DBUtils.js
5
src
  └── modules/
      ├── mainApp
      │   └── view  ============= Cứ lùi một cấp thư mục là một dấu  (../)
│		└── main.js   ============= Bạn đang ở đây. 
│
└── plugins
    └── very-important-plugins
        └── models
            └── DBUtils.js
6 là trỏ tới thư mục
src
  └── modules/
      ├── mainApp
      │   └── view  ============= Cứ lùi một cấp thư mục là một dấu  (../)
│		└── main.js   ============= Bạn đang ở đây. 
│
└── plugins
    └── very-important-plugins
        └── models
            └── DBUtils.js
7.

Ok, giờ chúng ta sử dụng thôi. Như ví dụ trên, chúng ta có thể chuyển thành như sau:

const DBUtils = require('@libs/very-important-plugins/models/DBUtils.js')

hoặc

const DBUtils = require('@/modules/plugins/very-important-plugins/models/DBUtils.js')

Với cách viết này, bạn có thể copy và sử dụng ở bất kỳ file nào khác cũng được, không cần quan tâm tương quan cấu trúc thư mục hiện tại và thư mục đích nữa.

Mình hi vọng, với thủ thuật nhỏ về Module Path trên sẽ có ích cho dự án của bạn. Đừng quên để lại một comment khích lệ nhé ^^

💦 Đọc thêm về NodeJS:

  • Xử lý ERROR trong NodeJS sao cho đúng?
  • Tạo RESTful API đơn giản bằng Nodejs + MongoDB
  • Tài liệu học lập trình Node.js tiếng việt (tốt nhất 2022)

Hướng dẫn path trong nodejs

​​Nhận sách ​​học Flutter qua 65 ứng dụng

​Flutter là nền tảng lập trình đa nền tảng (Android & iOS) do Google chống lưng. Nếu bạn muốn học Flutter thì không nên bỏ qua cuốn sách này. Hiện sách này đang bán trên Amazon với giá 19,99 $ và giờ VNTALKING miễn phí cho bạn.


DOWNLOAD

Hướng dẫn path trong nodejs

  • TAGS
  • học lập trình nodejs
  • javascript
  • javascript framework

Facebook

Twitter

Linkedin

Pinterest

WhatsApp

Bài trướcDịch vụ viết ứng dụng + Game (android – iOS) chất lượng – giá rẻ

Bài tiếp theoCâu hỏi phỏng vấn tuyển dụng React developer phổ biến

Sơn Dương

Tên đầy đủ là Dương Anh Sơn. Tốt nghiệp ĐH Bách Khoa Hà Nội. Mình bắt đầu nghiệp coder khi mà ra trường chẳng xin được việc đúng chuyên ngành. Mình tin rằng chỉ có chia sẻ kiến thức mới là cách học tập nhanh nhất. Các bạn góp ý bài viết của mình bằng cách comment bên dưới nhé !