在Node.js上的Express中扩展View类

我想重写Express框架中的View类,在Node.js中使用。 我想增加查找方法,但是我看不到在不改变Express和App模块的情况下做到这一点的方法。 我喜欢从Express框架派生,但我无法弄清楚这样做的一个简单的方法。

有任何想法吗?

谢谢

在我看来,你应该能够:

var View = require('express/lib/view'); // Keep reference to original lookup method var _lookup = View.prototype.lookup; // Override lookup method View.prototype.lookup = function (path) { // Your implementation here }; 

更新:

运行这个示例:

 var View = require('express/lib/view'); var _lookup = View.prototype.lookup; var express = require('express'); View.prototype.lookup = function (path) { console.log('LOOKUP!!! ' + path); return _lookup.call(this, path); }; var app = express(); app.get('/', function (req, res) { res.render('foo.jade'); }); app.listen(3000); 

 node app & sleep 1 && curl localhost:3000 

我希望这将certificate这种重写方法的可行性。

这取决于您使用的Express版本。

只有当您的应用程序在版本3之前使用Express时,才能轻松地增强视图查找代码

由于Express 3.0不再可行。

您可以检查我的旧相关答案的示例代码之一: Node.js + Express上的多个视图path