Czy można napisać oprogramowanie pośrednie, które jest uruchamiane po wysłaniu odpowiedzi do klienta lub po przetworzeniu żądania i wywołaniu tuż przed wysłaniem odpowiedzi do klienta?express/connect middleware, które wykonuje po wysłaniu odpowiedzi do klienta
8
A
Odpowiedz
13
pauljz dał podstawową metodę, ale rozszerzyć na który tutaj jest przykładem 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
}
}
W głównej aplikacji
expressApp.use(require("./doneMiddleware"));
expressApp.use(express.logger());
expressApp.use(express.static.....
3
Sprawdź, czy powiązanie z req.on('end', function() {...});
będzie działać.
+0
Jeśli dobrze rozumiem, to wydarzenie wywoła gdy klient kończy wysyłanie żądań/danych do serwera. Ale to, czego chcę, to po wywołaniu response.render lub response.redirect itd. Należy wykonać ware ware. –
Jeśli dobrze rozumiem, to zdarzenie uruchomi się, gdy klient zakończy wysyłanie żądania/danych do serwera. Ale to, czego chcę, to po wywołaniu response.render lub response.redirect itd. Należy wykonać ware ware. –
Nie, to zdarzenie zostanie wyemitowane po zakończeniu całego żądania, w tym wysłaniu odpowiedzi. Tak długo, jak render/redirect wywołanie response.end skojarzone żądanie wyemituje koniec. –
@SelvarajMA Następujące podejście może być lepsze: http://stackoverflow.com/a/21858212/673014. – pronskiy