狼书(卷2):Node.js Web应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.2 默认模板引擎Pug

Pug(原名Jade)是由TJ Holowaychuk(TJ)开发的一款高性能、简捷、易懂的模板引擎,是Haml的JavaScript实现版本,在服务器端(包括Node.js)及客户端均被支持。Haml在RoR里本来就很好用,所以基于它创造出Pug也是必然的。后来express-generator内置了Pug,所以很多Node.js开发者对它都比较熟悉。

Pug是极简模式的模板引擎。一般的HTML写法都很麻烦,可能含有各种标签,比如<div class='xxx'><p>yyy</p></div>,但通过Pug来写就变得简单很多,代码如下。

首先,不需要写标签,使用的是选择器,默认标签是div(可以不写)。其次,嵌套关系采用Tab或空格来控制,和Python有点像。

这种写法好处很多,当然也增加了抽象性,编写时需要在头脑中进行转换,所以很多人并不适应。习惯Pug的最好办法是,找一段已写好的HTML代码,用Pug重写一遍。但如果你是新手,且没有直接用Pug写过页面,你会发现用Pug重写HTML代码是很困难的。对于复杂的页面,如果写代码前没有规划好,最终就会变成灾难。

后面的章节还会详细讨论模板用法,本节只进行简单演示。