Yêu cầu như nodejs

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 (Đường dẫn mô-đun) từ một thư mục đến thư mục đích. Bạn hiểu đơn giản là mỗi dấu (. /) is back back directory cha. Để dễ hình dung, giả sử mình có 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')
1, mình muốn
const DBUtils = require('../../plugins/very-important-plugins/models/DBUtils.js')
2 DBUtils. Do đó, để trỏ tới DBUtils được, bạn cần phải chuyển tới các mô-đun thư mục, sau đó mới tiến tới các plugin thư mục và đi sâu vào trong. Kết quả sẽ có câu lệnh
const DBUtils = require('../../plugins/very-important-plugins/models/DBUtils.js')
2 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 nổi rõ hơn, bạn sẽ cần phải

const DBUtils = require('../../plugins/very-important-plugins/models/DBUtils.js')
2 cùng một mô-đun đó ở những nơi khác nhau. Thế là bạn phải dò lại xem mình đang ở thư mục nào, cần mấy dấu hai chấm (. ) to cursor to the true directory chứa mô-đun cần thiết
const DBUtils = require('../../plugins/very-important-plugins/models/DBUtils.js')
2

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

Use module Alias

Ý tưởng để giải quyết nhược điểm của cách viết là chúng ta sẽ viết đường dẫn mà điểm xuất phát luôn là thư mục gốc của dự án, ví dụ như 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 phải truy tìm thư mục về thư mục cha nữa

Kiểu như khi bạn ở trong khoả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 vị trí cần tới. Thay vào đó, bạn luôn luôn ở trên đỉnh núi, cần phải xuống tới chỗ luôn luôn đúng

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

Cài đặt

npm i --save module-alias

Add config in

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, các 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 sẽ trở về 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à con 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. As ví dụ trên, chúng ta có thể chuyển thành như sau

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

Với cách viết này, bạn có thể sao chép và sử dụng ở bất kỳ tệp nào khác cũng được, không cần quan tâm đến 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ề Đường dẫn mô-đun trên sẽ hữu ích cho dự án của bạn. Don't forget to back a valid comment 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 thiết lập Node. js tiếng việt (tốt nhất 2022)

Yêu cầu như nodejs

​Nhận sách ​Các tính năng nâng cao của Java

​Java là ngôn ngữ lập trình biến thế giới phổ biến nhất, 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 thi, 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?

TẢI XUỐNG

Yêu cầu như nodejs

  • THẺ
  • learning nodejs
  • jav
  • khung javascript

Facebook

Twitter

liên kết

Pinterest

WhatsApp

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

Bài tiếp theo Câu hỏi phỏng vấn tuyển dụng nhà phát triển React phổ biến

Yêu cầu như nodejs

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 đúng là xin được làm đú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é