Substituindo Express.js res.render

Isso é útil para fazer qualquer pré ou pós-processamento no resultado final de sua renderização.

Isso deve ser colocado no alto da matriz de middleware, para garantir que todas as chamadas para res.rendersejam tratadas pela mesma função.

https://gist.github.com/mrlannigan/5051687

/**
* Override res.render to do any pre/post processing
*/
app.use(function(req, res, next) {
var render = res.render;
res.render = function(view, options, fn) {
var self = this,
options = options || {},
req = this.req,
app = req.app,
defaultFn;

if ('function' == typeof options) {
fn = options, options = {};
}

defaultFn = function(err, str){
if (err) return req.next(err);
self.send(str);
};

if ('function' != typeof fn) {
fn = defaultFn;
}

render.call(self, view, options, function(err, str) {
// do whatever post processing you want
fn(err, str);
});
};
next();
});