Routing trong Koajs

Tram Ho

Như chúng ta đã biết, trừ những trang web chỉ có duy nhất một endpoint(một trang), thì Routing là một công việc tất yếu. Và đương nhiên, Routing cũng là một phần quan trọng trong Koajs, nhưng chức năng này lại không tích hợp sẵn trong Koa. Vì vậy hôm nay chúng ta sẽ tìm hiểu xem làm thế nào để phân trang trong Koa.js.

Phân trang thủ công

ảnh.png
Dù nói là không tích hợp sẵn, nhưng Koajs hoàn toàn có những tính năng để chúng ta tự làm chức năng Routing. Dưới đây là một ví dụ đơn giản:

Kết quả:
ảnh.png
ảnh.png
Nhìn vào đoạn code ở trên, ta thấy mọi thứ vẫn ổn, nhỉ? Tất nhiên là nếu chỉ đơn giản thì nó vẫn sử dụng được, nhưng rõ ràng là quá dài dòng và không hiệu quả. Nếu như cần đến param thứ 4, thứ 5 thì sẽ có rất nhiều if, else, khó debug(ta có thể lấy toàn bộ params thành một string, nhưng nếu như thế thì router phải theo một format nhất định, và ta cũng không thể dùng param động mà cần xử lí thêm). Dĩ nhiên ta có thể tối ưu nó bằng cách tách từng param là một middleware, nhưng nó vẫn chưa hiệu quả. Vì thế ta mới cần một thứ thần thánh, THƯ VIỆN.

Phân trang bằng thư viện

Một thư viện router được rất nhiều người sử với Koajs là koa-router. Cài đặt:

Khởi tạo router:

Phân trang theo ví dự ở trên:

Gắn vào app:

Kết quả vẫn giống hệt như trên, nhưng code đã ngắn gọn và dễ hiểu hơn rất nhiều.

Ví dụ trong dự án KoaShop

Path của từng trang:

  • Trưng bày sản phẩm: /
  • Xem chi tiết sản phẩm: /view/:id
  • Trang tìm kiếm: /search
  • Admin: /admin
    Code:

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo