2013-07-20 7 views

risposta

13

pauljz ha dato il metodo di base, ma per espandere su questo qui è un esempio di 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 
    } 
} 

Nella vostra applicazione principale

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

Se ho capito bene, questo evento si innescherà quando il client completa l'invio di richiesta/dati al server. Ma quello che voglio è, dopo aver chiamato response.render o response.redirect etc, il middle ware dovrebbe essere eseguito. –

+1

No, questo evento viene emesso una volta completata l'intera richiesta, inclusa l'invio della risposta. Finché il rendering/reindirizzamento della risposta di chiamata. La richiesta associata emetterà fine. –

+0

@SelvarajMA Il seguente approccio potrebbe essere migliore: http://stackoverflow.com/a/21858212/673014. – pronskiy

3

Vedere se il collegamento a req.on('end', function() {...}); funzionerà per voi.

+0

Se ho capito bene, questo evento si innescherà quando il client completa invio di richieste/dati al server. Ma quello che voglio è, dopo aver chiamato response.render o response.redirect etc, il middle ware dovrebbe essere eseguito. –