一个模板引擎使您能够在您的应用程序中使用静态模板文件。在运行时,模板引擎用实际值替换模板文件中的变量,并将模板转换为发送给客户端的HTML文件。这种方法使设计HTML页面更加容易。
    与Express一起使用的一些流行模板引擎是PugMustacheEJS。该Express应用程序生成器使用Jade作为其默认的,但它也支持其它几个。
    有关 可以与Express一起使用的模板引擎的列表,请参见模板引擎(Express Wiki)。另请参阅比较JavaScript模板引擎:Jade,Mustache,Dust等

    注意:Jade已重命名为Pug。您可以继续在您的应用程序中使用Jade,它将正常工作。但是,如果要对模板引擎进行最新更新,则必须在应用程序中用Pug替换Jade。

    要渲染模板文件,请设置以下应用程序设置属性,在app.js生成器创建的默认应用程序中进行设置

    • views,即模板文件所在的目录。例如:app.set('views', './views')。这默认为views应用程序根目录中的目录。
    • view engine,要使用的模板引擎。例如,使用帕格模板引擎:app.set('view engine', 'pug')

    然后安装相应的模板引擎npm软件包;例如安装Pug:

    1. $ npm install pug --save

    兼容Express的模板引擎(例如Jade和Pug)导出名为的函数__express(filePath, options, callback),该res.render()函数调用该函数以呈现模板代码。 某些模板引擎不遵循此约定。该Consolidate.js 通过映射所有流行的Node.js的模板引擎库遵循此惯例,因此,无缝内快车。

    设置视图引擎后,您无需指定引擎或在应用程序中加载模板引擎模块。Express在内部加载模块,如下所示(对于上面的示例)。

    1. app.set('view engine', 'pug')

    index.pugviews目录中创建一个名为Pug的模板文件,内容如下:

    1. html
    2. head
    3. title= title
    4. body
    5. h1= message

    然后创建路由以渲染index.pug文件。如果view engine未设置该属性,则必须指定view文件的扩展名。否则,您可以忽略它。

    app.get('/', function (req, res) {
      res.render('index', { title: 'Hey', message: 'Hello there!' })
    })
    

    当您请求主页时,index.pug文件将呈现为HTML。
    注意:视图引擎缓存不缓存模板输出的内容,仅缓存基础模板本身。即使打开了缓存,该视图仍会与每个请求一起重新呈现。
    要了解有关模板引擎如何在Express中工作的更多信息,请参见: “为Express开发模板引擎”