Express 官网文档翻译-3.4-使用模板引擎
在 Express 中使用模板引擎
模板引擎 能够让你在应用中使用静态模板文件。运行时,模板引擎会用真实值把模板文件中的变量替换掉,把模板翻译成 HTML 文件,然后发送客户端。这种方式使得HTML页面更容易设计。
Express 支持很多流行的模板引擎,像 Pug,Mustache ,和 EJS。Express 应用生成器 使用 Jade 作为默认的模板引擎,但也可以选择其他模板引擎。
想了解关于 Express 支持的模板引擎的更多信息,请查看 模板引擎 (Express 维基)。另外还可以查看 JavaScript 模板引擎的比较: Jade, Mustache, Dust 和其他。
注意: Jade 已经更名为 Pug。你可以继续在应用中使用 Jade,并且工作的很好。然而,如果你想使用 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
像 Jade 和 Pug 这种 Express 兼容的模板引擎会导出一个叫
__express(filePath, options, callback)
的函数,它会被res.render()
用来渲染模板代码。
有些模板引擎没有遵循此约定。Consolidate.js
库遵循了此约定,并通过映射所有主流的Node.js模板引擎,使得一些没有遵循约定的模板引擎也可以和 Express 无缝衔接。
安装完模板引擎 npm 包后,您不必在应用程序中显性加载模板引擎模块;Express会在内部加载模块,如下所示(对应上面的示例)。
app.set('view engine', 'pug')
在 views 目录里创建一个名为 index.pug 的 Pug 模板文件,并写入下面内容:
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 模板引擎。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。