2012-04-11 5 views
1

Ich versuche Express Ansicht Lookup-Funktion außer Kraft zu setzen, aber verwalten kann, es nicht zu tun. Ziel ist es, Vorlagen in mehreren Verzeichnissen suchen zu können.Wie monkeypatch Express-Ansicht-Lookup?

Was ich versuche zu tun, in bootstrap.js:

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; 

Mein app.js Code ist:

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); 

In meinem bootstrap.js Code, express.View.prototype.lookup nicht definiert ist. Ich kann nicht verstehen warum. Was habe ich falsch gemacht?

Ich fange gerade mit node.js und „Erweitert“ Javascript. Und ich muss zugeben, dass ich hier irgendwie verloren bin.

Danke.

Antwort

1

In der aktuellen Version (2.5.9) ist es nicht View.prototype.lookup, es ist nur View.lookup.

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

Dank. Github-Code anschauen und Code gleichzeitig bearbeiten = schlechte Idee! – Pierre