2013-07-20 8 views

Antwort

13

pauljz gab die grundlegende Methode, aber auf der hier zu erweitern ist ein Beispiel für 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 
    } 
} 

In Ihrem Haupt App

expressApp.use(require("./doneMiddleware")); 
expressApp.use(express.logger()); 
expressApp.use(express.static..... 
+0

Wenn ich das richtig verstehe, wird dieses Ereignis ausgelöst, wenn der Client das Senden der Anfrage/Daten an den Server abgeschlossen hat. Aber was ich will, ist nach dem Aufruf von response.render oder response.redirect etc, sollte die Middleware ausgeführt werden. –

+1

Nein, dieses Ereignis wird ausgegeben, sobald die gesamte Anforderung abgeschlossen ist, einschließlich des Sendens der Antwort. Solange rendern/Redirect Call Response.end die verknüpfte Anfrage wird Ende senden. –

+0

@SelvarajMA Der folgende Ansatz kann besser sein: http://StackOverflow.com/a/21858212/673014. – pronskiy

3

Prüfen Sie, ob die Bindung an req.on('end', function() {...}); für Sie funktioniert.

+0

Wenn ich richtig verstehe, löst dieses Ereignis, wenn der Client abgeschlossen Senden der Anfrage/Daten an den Server. Aber was ich will, ist nach dem Aufruf von response.render oder response.redirect etc, sollte die Middleware ausgeführt werden. –