// register a new view constructor
app.set('view', GithubView);
在视图构造函数的expressjs示例中遇到了这个片段。找不到任何关于express的视图设置的文档。
Express 中有一个默认的 View 类,用于控制模板的定位、加载和渲染方式。通过 app.set('view', CustomeViewClass)
更改
view设置,您可以指示 Express 使用自定义 View 类,从而覆盖 Express 定位和检索模板的方式。 Express 的 application.js 文件中的函数 render 的片段显示了如何根据 view 设置加载 View 类。
if (!view) {
var View = this.get('view');
view = new View(name, {
defaultEngine: this.get('view engine'),
root: this.get('views'),
engines: engines
});
if (!view.path) {
var dirs = Array.isArray(view.root) && view.root.length > 1
? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"'
: 'directory "' + view.root + '"'
var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
err.view = view;
return done(err);
}
// prime the cache
if (renderOptions.cache) {
cache[name] = view;
}
}