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: Show var path = require("path") Phương thức của path Module trong Node.jsSttPhươ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.jsSttThuộc tính & Miêu tả1path.sepBiể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. 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.jsSttPhươ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.jsSttThuộc tính & Mô tả1path.sepBiể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.jsVí 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 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 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.js2 (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.js3 { "_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.js4 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.js5 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.js6 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.js7. 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:
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.
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é ! |