DEV Community

BlackMan
BlackMan

Posted on

Middleware trong expressjs là gì?

Trong Express.js, middleware là các hàm xử lý trung gian được thực thi tuần tự trong quá trình xử lý yêu cầu HTTP. Middleware có thể thực hiện các tác vụ như kiểm tra xác thực, ghi log, xử lý lỗi, xử lý yêu cầu và phản hồi, và nhiều chức năng bổ sung khác.

Middleware trong Express.js có hai loại chính: middleware ứng dụng (application-level middleware) và middleware định tuyến (router-level middleware).

Middleware ứng dụng (Application-level middleware): Đây là những middleware được áp dụng cho toàn bộ ứng dụng Express.js. Bạn có thể sử dụng phương thức app.use() để đăng ký middleware ứng dụng. Ví dụ:

var cookieParser = require('cookie-parser');
app.use(cookieParser());

Enter fullscreen mode Exit fullscreen mode

Middleware định tuyến (Router-level middleware): Đây là những middleware được áp dụng cho một nhóm tuyến đường (routes) cụ thể. Bạn có thể sử dụng phương thức router.use() để đăng ký middleware định tuyến.

const checkloginPartner = function (req, res, next) {
  if (req.cookies.Sbaytoken) {
    var decoded = jwt.verify(req.cookies.Sbaytoken, process.env.CookiesSecretKey);
    //console.log(decoded);
    if (decoded.userID) {
      req.decoded = decoded
      next()
    }
  } else {
    res.redirect('/dang-nhap')
  }
}
router.get('/', checkloginPartner, async function (req, res, next) {
res.end('next page')
}
Enter fullscreen mode Exit fullscreen mode

Middleware có thể được định nghĩa dưới dạng hàm đơn giản hoặc là một chuỗi các middleware tuần tự. Các middleware có thể gọi next() để chuyển tiếp yêu cầu tới middleware tiếp theo trong chuỗi.

Express.js cung cấp một số middleware tích hợp sẵn như body-parser để xử lý dữ liệu từ yêu cầu, cors để xử lý vấn đề chính sách chia sẻ nguồn tài nguyên xác định bởi cơ chế Same-Origin Policy (SOP), và morgan để ghi log yêu cầu. Ngoài ra, bạn cũng có thể tạo middleware tùy chỉnh theo nhu cầu của ứng dụng của mình.

Top comments (0)