expressjs 中的视图构造函数是什么

问题描述 投票:0回答:1
// register a new view constructor
app.set('view', GithubView);

视图构造函数的expressjs示例中遇到了这个片段。找不到任何关于express的视图设置的文档。

express
1个回答
0
投票

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;
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.