非常教程

Express参考手册

指南 | Guide

4.使用带Express的模板引擎 | 4. Using template engines with Express

一个模板引擎使您能够在您的应用程序中使用静态模板文件。在运行时,模板引擎用实际值替换模板文件中的变量,并将模板转换为发送给客户端的HTML文件。这种方法使设计HTML页面变得更加容易。

与Express一起使用的一些流行的模板引擎是Pug, Mustache和EJS。Express应用程序生成器使用Jade作为默认设置,但它也支持其他几种。

请参阅模板引擎(Express wiki)以获取可用于Express的模板引擎列表。另请参阅比较JavaScript模板引擎:Jade,Mustache,Dust等。

注意:Jade已更名为Pug。你可以继续在你的应用中使用Jade,它会工作得很好。但是,如果你想要模板引擎的最新更新,你必须在你的应用中用Pug代替Jade。

要呈现模板文件,请设置以下应用程序设置属性,并在app.js由生成器创建的默认应用程序中设置:

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

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

$ npm install pug --save

符合Express的模板引擎(如Jade和Pug)会导出名为的函数__express(filePath, options, callback)res.render()函数将被函数调用以呈现模板代码。

一些模板引擎不遵循这个约定。该Consolidate.js通过映射所有流行的Node.js的模板引擎库遵循此惯例,因此,无其他快捷方式。

在设置视图引擎后,您不必在应用程序中指定引擎或加载模板引擎模块; Express在内部加载模块,如下所示(针对上述示例)。

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

创建一个名为Pug模板文件index.pugviews目录,具有以下内容:

html
  head
    title= title
  body
    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的模板引擎”。

Express

Express 是一个简洁而灵活的 node.js Web 应用框架, 提供一系列强大特性帮助你创建各种 Web 应用。Express 不对 node.js 已有的特性进行二次抽象,只是在它之上扩展了 Web 应用所需的功能。丰富的 HTTP 工具以及来自 Connect 框架的中间件随取随用,创建强健、友好的 API 变得快速又简单。

主页 http://expressjs.com/
源码 https://github.com/strongloop/express/
发布版本 4.16.1

Express目录

1.开始 | Getting started
2.指南 | Guide
3.高级主题 | Advanced topics
4.API