如何使用express管理服务器端和客户端的jade模板?

如何使用express管理服务器端和客户端的jade模板?,express,pug,Express,Pug,假设我正在编写一个比较比萨饼店的应用程序。 我的比萨店列表有一个模板,如下所示: table tr th Rank th Name th Date Ordered th Address each shop in shops tr td= shop.rank td= shop.name td

假设我正在编写一个比较比萨饼店的应用程序。 我的比萨店列表有一个模板,如下所示:

table
    tr
        th Rank
        th Name
        th Date Ordered
        th Address
        each shop in shops
            tr 
                td= shop.rank
                td= shop.name
                td= shop.dateOrdered
                td
                    each line in shop.address
                        span #{line} <br/>
doctype 5
html
    head
        title Pizza Wars
        link(rel='stylesheet', href='/style/style.css')
    body
        #wrapper
            h1.main-title.section.group Pizza Wars
            div.section.group
                include side-menu
                block content
当用户在“/shops”请求页面时,我想用页面的完整html进行响应。当用户已经在“/”上,并且他们在页面中导航到“/shops”时,我只想请求JSON,并呈现模板客户端(如果感兴趣的话,我使用的是backbone.js)

由于Express不再支持布局,我怀疑我必须在shops.jade文件中扩展layout.jade,但这样做的问题是,shops.jade文件将呈现整个页面的html,因此在客户端是无用的,我只希望它呈现商店表

我考虑过的另一个选项是在我的服务器代码中有两个对res.render的调用,一个用于呈现商店列表,另一个用于呈现以该列表为内容的布局。这个解决方案显然是次优的


有没有人见过/找到一种使用jade来满足这两种情况的方法?

我使用的解决方案是在页面加载时不在正文中发送标记,并在响应中包含客户端正在查看的任何页面的json数据。然后我让主干处理html的呈现。这在主干应用程序中似乎很常见