Řekněme, že mám více míst, kde volám response.send(someData)
. Nyní chci vytvořit jediný globální interceptor, kde zachytím všech .send
a proveďte nějaké změny v someData
. Existuje nějaký způsob v express.js? (háky, posluchače, zachycovače, …)?
Odpověď
Můžete definovat middleware, jak je uvedeno níže (převzato a upraveno z této odpovědi)
function modifyResponseBody(req, res, next) { var oldSend = res.send; res.send = function(data){ // arguments[0] (or `data`) contains the response body arguments[0] = "modified : " + arguments[0]; oldSend.apply(res, arguments); } next(); } app.use(modifyResponseBody);