发现Jade模板引擎很有趣。然而,我目前无法想象在哪种情况下会使用Jade或者何时应用Jade模板引擎。是否有任何实际场景/示例能够展示Jade模板引擎的强大之处呢?
谢谢!
发现Jade模板引擎很有趣。然而,我目前无法想象在哪种情况下会使用Jade或者何时应用Jade模板引擎。是否有任何实际场景/示例能够展示Jade模板引擎的强大之处呢?
谢谢!
app.get('/rooms', ensureAuthenticated, ensureCompleteProfile, function(req, res){
db.on(req.user.id)
.then(function(uid){
return [
this.listAccessibleRooms(uid),
this.fetchUserPingRooms(uid, 0)
]
}).spread(function(accessibleRooms, pings){
var rooms = {public:[], private:[]};
accessibleRooms.forEach(function(r) {
r.path = roomPath(r);
rooms[r.private?'private':'public'].push(r);
});
res.render('rooms.jade', { rooms:rooms, pings:pings });
}).finally(db.off);
});
并且Jade文件将使用它们:
table.list
each room, i in rooms.public
tr
th: a(href=room.path) #{room.name}
td.rendered #{room.description}
if room.auth
td.role= room.auth
<table class="list">
<tr>
<th><a href="path1">Room 1</a></th>
<td class="rendered">Description of room 1</td>
<td class="role">Admin</td>
</tr>
<tr>
<th><a href="path2">Room 2</a></th>
<td class="rendered">Description of room 2</td>
</tr>
</table>
这个例子来自我的开源Miaou聊天室。完整的Jade文件在rooms.jade中。
模板引擎也可以使用
服务器端MVC框架
与Denys提供的Express示例非常相似。
例如:ASP.NET MVC的Razor, Laravel的Blade,...
静态网站生成器
从动态内容(json、数据库等)生成静态网站。如果您无法使用服务器端语言或不想支付费用,则非常有用。
例如:Jekyll的Liquid,...
发票应用程序
模板引擎创建HTML,然后转换为PDF。或者任何其他生成PDF的应用程序。