我知道Express中的这一行app.set('views', path.join(__dirname, 'views'));
设置了视图变量,所以我可以在./views文件夹中渲染我的所有.jade文件。
有没有人知道如何为views变量添加更多的值,所以我可以在./views文件夹以及./views文件夹内部渲染我的.jade文件?
(例如./includes/form/form.jade和./views/index.jade)
我有Express 4.2.0,文件结构如下:
+ node_modules
+ public
- includes
- form
- index.jade
- style.less
- script-form.js
+ views
- index.jade
答案 0 :(得分:0)
这对我有用,因为我表达了3.x或更高版本。
function enable_multiple_view_folders() {
// Monkey-patch express to accept multiple paths for looking up views.
// this path may change depending on your setup.
var View = require("./node_modules/express/lib/view"),
lookup_proxy = View.prototype.lookup;
View.prototype.lookup = function(viewName) {
var context, match;
if (this.root instanceof Array) {
for (var i = 0; i < this.root.length; i++) {
context = {root: this.root[i]};
match = lookup_proxy.call(context, viewName);
if (match) {
return match;
}
}
return null;
}
return lookup_proxy.call(this, viewName);
};
}
并使用它: -
enable_multiple_view_folders();
app.set('views', [__dirname + '/views', __dirname + '/form']);
app.set('view engine', 'jade');