2013-07-20 9 views

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

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

+1

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

+0

@SelvarajMA Następujące podejście może być lepsze: http://stackoverflow.com/a/21858212/673014. – pronskiy

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