1

Expressビュールックアップ関数をオーバーライドしようとしていますが、それを実行できません。目標は、複数のディレクトリでテンプレートを検索できるようにすることです。

私がやろうとしていることは、で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;

私のapp.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);

私のbootstrap.jsコードでは、express.View.prototype.lookupは未定義です。理由がわかりません。私は何を間違えましたか?

node.jsと「高度な」Javascriptから始めたばかりです。そして、私はここでちょっと迷っていることを認めなければなりません。

ありがとう。

4

1 に答える 1

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]
于 2012-04-11T20:13:05.173 に答える