Có thể viết một phần mềm trung gian thực thi sau khi phản hồi được gửi tới máy khách hay sau khi yêu cầu được xử lý và được gọi ngay trước khi gửi phản hồi cho máy khách?Express/connect middleware thực thi sau khi phản hồi được gửi đến máy khách
8
A
Trả lời
13
pauljz đã đưa ra phương pháp cơ bản nhưng để mở rộng trên rằng đây là một ví dụ về middleware
module.exports = function() {
return function(req, res, next) {
req.on("end", function() {
// some code to be executed after another middleware
// does some stuff
});
next(); // move onto next middleware
}
}
Trong ứng dụng chính của bạn
expressApp.use(require("./doneMiddleware"));
expressApp.use(express.logger());
expressApp.use(express.static.....
3
Xem liệu ràng buộc với req.on('end', function() {...});
có hiệu quả với bạn hay không.
+0
Nếu tôi hiểu đúng, sự kiện này sẽ kích hoạt khi khách hàng hoàn thành gửi yêu cầu/dữ liệu đến máy chủ. Nhưng những gì tôi muốn là, sau khi gọi response.render hoặc response.redirect vv, phần giữa sẽ được thực hiện. –
Nếu tôi hiểu chính xác, sự kiện này sẽ kích hoạt khi khách hàng hoàn tất việc gửi yêu cầu/dữ liệu đến máy chủ. Nhưng những gì tôi muốn là, sau khi gọi response.render hoặc response.redirect vv, phần giữa sẽ được thực hiện. –
Không, sự kiện này được phát ra sau khi toàn bộ yêu cầu được thực hiện, bao gồm gửi phản hồi. Miễn là render/redirect call response.end yêu cầu liên quan sẽ phát ra kết thúc. –
@SelvarajMA Cách tiếp cận sau có thể tốt hơn: http://stackoverflow.com/a/21858212/673014. – pronskiy