Có một số câu hỏi tương tự được đặt ra nhưng câu hỏi của tôi là nếu tôi muốn truyền tải các kết quả trung gian mà tôi nhận được cùng với phần mềm trung gian định tuyến khác nhau, thì cách tốt nhất để làm điều đó là gì?
app.use(f1); app.use(f2); app.use(f3);
function f1(req,res,next) {
//some database queries are executed and I get results, say x1
res.locals.dbResults = {...};
next();
}
function f2(req,res,next) {
// more processing based upon req.locals.dbResults
res.locals.moreResults = {....};
next();
}
// ...
Tôi nghĩ rằng tôi có thể nhận được cùng một sự lan truyền dữ liệu thông qua phần mềm trung gian khác nhau bằng cách sử dụng req .locals. Ngoài ra, có vẻ như cả hai đối tượng request và response đều có các thuộc tính local được khởi tạo thành một đối tượng trống khi bắt đầu yêu cầu.
Ngoài ra, người ta cũng có thể đặt thuộc tính res.mydata hoặc req.mydata?
Về lý thuyết, app.locals cũng có thể được sử dụng để truyền dữ liệu này cùng với các phần mềm trung gian khác nhau vì nó sẽ tồn tại trên các phần mềm trung gian nhưng điều đó sẽ trái ngược với cách sử dụng app.locals thông thường. Nó được sử dụng nhiều hơn cho dữ liệu ứng dụng cụ thể. Cũng cần phải xóa dữ liệu đó vào cuối chu kỳ yêu cầu-phản hồi để các biến tương tự có thể được sử dụng cho yêu cầu tiếp theo.
Cách tối ưu và tiêu chuẩn để truyền các kết quả trung gian thông qua phần mềm trung gian là gì?