2012-04-11 11 views
1

私はエクスプレスビューのルックアップ機能をオーバーライドしようとしていますが、それを管理することはできません。目標は、複数のディレクトリでテンプレートを探すことができるようにすることです。私app.jsコードがエクスプレスビューのルックアップをmonkeypatchするにはどうすればよいですか?

function bootstrap(express) { 
    var originalLookup = express.View.prototype.lookup; 
    express.View.prototype.lookup = function(path) { 
     console.log('Requested for', path); 
     return originalLookup(path); 
    }; 
}; 

module.exports = bootstrap; 

::私は何をしようとしている

bootstrap.jsでは、私のbootstrap.jsコードで

var express = require('express'), 
    routes = require('./routes'), 
    bootstrap = require('./bootstrap'), 
    app = module.exports = express.createServer(); 


// Configuration 
require('./config/environment.js')(app, express); 

// Bootstrap 
bootstrap(express); 

// Routes 
require('./config/routes.js')(app); 

// Start 
app.listen(3000); 

、express.View.prototype.lookupは未定義です。なぜ私は理解できません。私は何を間違えたのですか?

私はnode.jsと "advanced" Javascriptで始まっています。そして、私はちょっとここで失われていることを認めなければなりません。

ありがとうございました。

答えて

1

現在のバージョン(2.5.9)では、View.prototype.lookupではなく、View.lookupです。

~:) node 
> require('express').View 
{ [Function: View] 
    register: [Function], 
    compile: [Function], 
    lookup: [Function] } 
> require('express').View.lookup 
[Function] 
+0

ありがとうございました。 Githubコードと編集コードを同時に見て=悪い考え! – Pierre

関連する問題