Node.js 15 – Sử dụng middleware trong express

0
300

Sử dụng middleware ở cấp ứng dụng

Khi bạn khởi tạo một ứng dụng Web với Express một đối tượng đại diện cho ứng dụng của chúng ta đó là app (tùi theo mỗi người mà tên đối tượng này có thể sẽ khác).   Chúng ta có thể sử dụng đối tượng này để khai báo middleware thông qua các hàm app.use() hoặc app.METHOD METHOD ở đây chính là các phương thức của request .

Ví dụ với middleware khi không có đường dẫn. Với kiểu khai báo như thế này thì mỗi khi có yêu cầu tới middleware sẽ được thực thi.

File server.js

Ví dụ này sẽ gắn một middleware vào đường dẫn /user/:id . Middleware sẽ được thực thi khi có một yêu cầu truy cập vào /user/:id

File server.js

Ví dụ khi một người dùng truy cập đường dẫn bằng phương thức GET.

File server.js

Khi chúng ta muốn khai báo một lúc nhiều middleware cho một đường dẫn, các bạn có thể viết liên tiếp nhiều hàm là các tham số phía sau tham số đường dẫn.

Trong trường hợp các bạn có nhiều router được xác định cho một đường dẫn. Ví dụ

Trong trường hợp trên khi một client truy cập vào /user/:id thì phía express sẽ tự động đẩy vào User Info và không thể nào chuyển tiếp tới req.params.id . Để có thể chuyển tiếp tới req.params.id thì ở hàm next() chúng ta phải khai báo thêm tham số 'router' thì nó sẽ tự động chuyển về router cuối cùng trong danh sách router

Ví dụ dưới đây mô tả trường hợp khi truy cập vào đường dẫn /user/:id với id khác 0 thì sẽ chuyển tới req.params.id

File server.js

Sử dụng middleware ở cấp Router

Các middleware của Router về cách thức hoạt động không khác gì so với middleware cấp ứng dụng. Nhưng thay vì sử dụng đối tượng đại diện cho ứng dụng, chúng ta sẽ sử dụng thể hiện của Router.

ở trong đối tượng router cũng có những phương thức tương tự như ở trong đối tượng app của ứng dụng. Bao gồm router.use() và router.METHOD .

Ví dụ:

File server.js

Sử dụng middleware xử lý lỗi

Một trong những điều quan trọng nhất trong xây dựng web là xử lý lỗi. Vì hệ thông sẽ phụ thuộc vào các dịch vụ , cơ sở dữ liệu khác, cũng như người sử dụng dịch vụ đó. Cơ sở dữ liệu không kết nối được, dịch vụ sẽ không hoạt động và người dùng sẽ không thể nào truy cập tới được các đường dẫn của chúng ta.

Để phòng chống những tính huống như vậy bạn phải xử lý các lỗi đúng cách.

Trước khi đi vào ví dụ đơn giản về xử lý lỗi thì chúng ta cùng xem cú pháp khai báo một middleware xử lý lỗi trong expres.

Cú pháp

Như các bạn thấy thì middleware xử lý lỗi thì chúng ta sẽ có thêm 1 tham số đó là error. Chính là đối tượng chứa thông báo lỗi của chúng ta.

Ví dụ thông báo lỗi đơn giản.

File server.js

Trong ví dụ trên tôi viết ra một middleware xử lý lỗi đơn giản. Ở trong router /user/:id tôi viết đoạn code đơn giản để kiểm tra tham số id bằng 0 thì tạo ra một đối tượng chứa thông tin lỗi sau đó tiến hành chuyển tiếp thông tin lỗi đến middleware xử lý lỗi để tiếp tục xử lý.

Để chạy thử ví dụ các bạn chạy command với lệnh

Sử dụng middleware tích hợp

Middleware tích hợp là các middleware đã được cài đặt sẵn ở trong đối tượng express.

Express có các midleware tích hợp sau:

  • express.static : dùng để sử dụng các tập tin tĩnh như các tập tin css, javascript hay image
  • express.json :phân tích các yêu cầu gửi lên bằng JSON
  • express.urlencode : phân tích các yêu cầu của được mã hóa theo url.

Sử dụng middleware của bên thứ ba

Ngoài những middleware các bạn tự xây dụng hay các middleware tích hợp sẵn các bạn có thể cài các middleware của các bên thứ 3 ở trên kho NPM.

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây