2013-07-20 35 views

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..... 
+0

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. –

+1

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. –

+0

@SelvarajMA Cách tiếp cận sau có thể tốt hơn: http://stackoverflow.com/a/21858212/673014. – pronskiy

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. –

Các vấn đề liên quan