有没有办法在快递+合并中自动加载胡子部分

时间:2013-01-03 23:11:33

标签: express partials mustache

我正在使用express + consolidate + mustache作为模板引擎,我想知道是否有一种方法可以使用express来自动加载具有匹配文件名的部分,我没有明确定义。

示例:

head.html:
---
<!DOCTYPE html>
<html><head><title></title></head><body>


index.html:
---
{{> head}}
{{content}}
{{> foot}}


foot.html:
---
</body></html>


app.js:
---
app.get('/', function(req, res) {
    res.render('index.html', {
        partials: {
            head: 'head', 
            foot: 'foot'
        }
    });
});

如您所见,headfoot部分的名称与其相应的文件名完全相同(减去.html)。这样做可以正常工作,但我正在寻找一种简单的方法让express / mustache自动加载部分文件,如果有匹配的文件名;无需再次在每个函数中指定我的默认部分。 {{> example}} - &gt;查看views/example.html是否存在,如果未在partials对象中定义example,则加载它。

这可能吗?

或者至少有一种简单的方法可以全局定义默认部分吗?

1 个答案:

答案 0 :(得分:1)

这还不可能合并。我们有完全相同的问题(能够通过他们的名字调用部分而不必告诉hogan / consolidate每次都加载它们)并且找不到一个好的模块,所以我们制作了自己的,我们一直在生产中使用几周:h4e(“Hogan for Express”)。有了它,所有部分都会自动加载,如果你愿意,你也可以使用布局。

我认为它应该满足您的需求。 路易斯