Express 官网文档翻译-3.4-使用模板引擎

Node.js

在 Express 中使用模板引擎

模板引擎 能够让你在应用中使用静态模板文件。运行时,模板引擎会用真实值把模板文件中的变量替换掉,把模板翻译成 HTML 文件,然后发送客户端。这种方式使得HTML页面更容易设计。

Express 支持很多流行的模板引擎,像 PugMustache ,和 EJSExpress 应用生成器 使用  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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:http://www.expressjs.com.cn/guide/using-...

译文地址:https://learnku.com/f2e/t/37871

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!