Lets say I have multiple places where I call response.send(someData)
. Now I want to create a single global interceptor where I catch all .send
methods and make some changes to someData
. Is there any way in express.js? (hooks, listeners, interceptors, …)?
Advertisement
Answer
You can define a middleware as below (taken and modified from this answer)
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);