Node.js 14 – Middleware Express

0
108

Trong ngành công nghiệp phần mềm, middleware là một thuật ngữ dùng để mô tả một lớp phần mềm nằm giữa các ứng dụng và hệ điều hành. Nhằm cung cấp dịch vụ cho các ứng dụng phần mềm ngoài những ứng dụng có sẵn từ hệ điều hành…

Middleware trong ứng dụng web

  • Trong lập trình web middleware đóng vai trò trung gian giữa yêu cầu của người dùng và phản hồi của máy chủ (request và response).
  • Ở trong các freamwork của các ngôn ngữ lập trình middleware là các hàm dùng để xử lý các request trước khi đưa vào xử lý logic của ứng dụng web.

Middleware trong Express

Ở trong express middleware là các hàm thực thi trong suốt vòng đời của một yêu cầu (request) tới máy chủ Express. Mỗi middleware đều có quyền truy cập vào requestresponse của mỗi router được gắn vào.

Middleware trong express sẽ thực hiện 4 công việc sau.

  • Thực hiện bất kỳ dòng code nào như một hàm thông thường.
  • Thực hiện thay đổi đối với requestresponse
  • Kết thúc chu kỳ request-reponse
  • Gọi middleware tiếp theo .

Cấu trúc middleware trong express

Một middleware trong express sẽ như thế nào?

Bên dưới là cấu trúc của một middleware ở trong express.

Trong cấu trúc trên các bạn có thể thấy rằng middleware trong express khá đơn giản, nó chỉ là một hàm nhận vào 3 tham số request , response và next. Với 3 tham số này chắc các bạn cũng đoán được 2 tham số requestresponse là gì rồi. Còn đối với next() nó được sử dụng để gọi các middleware tiếp theo.

Ví dụ

Tôi sẽ ví dụ cho các bạn một middleware đơn giản sau đó chúng ta sẽ tìm hiểu các cách sử dụng middleware.

File server.js

Với ví dụ này tối viết một middleware để ghi khi một người nào đó truy cập vào ứng dụng.

Hàm myLogger sẽ có chức năng là in ra đường dẫn mà client đang truy cập tới. Để sử dụng middleware tôi sử dụng app.use() của express và chỉ đinh các chức năng của middleware, cụ thể ở đây là chức năng myLogger .

Bây giờ các bạn hãy chạy thử ví dụ trên bằng lệnh

sau đó thử truy cập đường dẫn http://localhost:3000/abchttp://localhost:3000/xyzhttp://localhost:3000 và thử kiểm tra xem middleware có hoạt động không nhé.

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