Using template engines with Express

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

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

有关可以与Express一起使用的模板引擎的列表,请参见模板引擎(Express Wiki) . 另请参阅比较JavaScript模板引擎:Jade,Mustache,Dust等 .

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

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

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

$ npm install pug --save

兼容Jade和Pug的Express模板引擎导出了一个名为__express(filePath, options, callback) res.render()函数,由res.render()函数调用以呈现模板代码.

某些模板引擎不遵循此约定. Consolidate.js库通过映射所有流行的Node.js模板引擎来遵循此约定,因此可以在Express中无缝运行.

设置视图引擎后,您无需指定引擎或在应用程序中加载模板引擎模块. 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开发模板引擎" .

by  ICOPY.SITE