[NodeJS] Bỏ Cách Viết đường Dẫn /…/ Quá Sâu được Rồi đấy

Đã bao giờ bạn gặp phải đoạn mã khi require(...) một module như này chưa?
const Article = require('../../../../app/models/article');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.jsTạ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/ (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-aliasThêm cấu hình trong package.json
{ "_moduleAliases": { "@": "src", "@libs": "src/modules/plugins" } }Như cách cấu hình trên, ký tự @ là sẽ trở tới thư mục src/, @libs là trỏ tới thư mục src/plugins.
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)

Nhận sách Java Advanced Features
Java là ngôn ngữ lập trình phổ biến nhất thế giới, là hình mẫu của tư tưởng OOP. Nếu bạn muốn bắt đầu với Java thì đây là cuốn sách không thể bỏ qua. Với 63 ví dụ thực hành, cùng với cách viết ngắn gọn dễ hiểu sẽ giúp bạn hiểu rõ bản chất của Java.
Hiện Amazon đang bán với giá 16$, nhưng với VNTALKING thì miễn phí cho bạn. Còn chờ gì nữa?
DOWNLOAD
Từ khóa » Bỏ Module
-
Hướng Dẫn Cài đặt & Gỡ Bỏ Module Của Drupal
-
Cài đặt Và Gỡ Bỏ Module - Drupal Groups
-
[Share] Module Bỏ Tên Module Thứ 2 Trên Link (News, Shops) - Vsoft
-
Muốn Loại Bỏ Module Thì Phải Làm Sao Vậy Thầy
-
Cài đặt Và Gỡ Bỏ Module Trong DruPal
-
Hỏi Cách Sử Dụng Javaloader để Gỡ Bỏ Module - Tinhte
-
Cách Gỡ Bỏ Mô-đun Magisk Sử Dụng TWRP Recovery
-
Làm Sao để Có Thể Gỡ Bỏ UserForm/Module Trong 1 Project Bằng ...
-
Tổng Hợp Các Module Python "khủng" Mà Bạn Có Thể đã Bỏ Qua
-
Module Javascript Phần 2: Đóng Gói Module - Viblo
-
Module Hkcmd Trong Startup Là Gì? Có An Toàn để Loại Bỏ Không?
-
Delete Module From Module List | Odoo
-
JC Pro1000S Logic Baseus EEPROM Chip Không Loại Bỏ Module ...
-
Vpmoct128 Echo Hủy Bỏ Module Cho Te220,Te210,Te405,Te410 ...
-
Tóm Tắt 20 Module Là Gì Tốt Nhất, đừng Bỏ Qua
-
3 Cách Bỏ Dấu Chữ Tiếng Việt Trong Excel Nhanh, đơn Giản