Node.js / Express.js - Как переопределить / перехватить функцию res.render?

Я создаю приложение Node.js с Connect / Express.js и хочу перехватить функцию res.render (view, option) для запуска некоторого кода перед его передачей в исходную функцию рендеринга.

app.get('/someUrl', function(req, res) {

    res.render = function(view, options, callback) {
        view = 'testViews/' + view;
        res.prototype.render(view, options, callback);
    };

    res.render('index', { title: 'Hello world' });
});

Это выглядит как надуманный пример, но он вписывается в общую структуру, которую я строю.

Мои знания о ООП и наследовании прототипов в JavaScript немного слабоваты. Как бы я сделал что-то подобное?

Обновить: После некоторых экспериментов я придумал следующее:

app.get('/someUrl', function(req, res) {

    var response = {};

    response.prototype = res;

    response.render = function(view, opts, fn, parent, sub){
        view = 'testViews/' + view;
        this.prototype.render(view, opts, fn, parent, sub);
    };

    response.render('index', { title: 'Hello world' });
});

Вроде работает. Не уверен, что это лучшее решение, так как я создаю новый объект-оболочку ответа для каждого запроса, это будет проблемой?

Ответы на вопрос(4)

Ваш ответ на вопрос