在express.js / node.js中包含标头+自定义服务器端.js的正确方法?

时间:2015-07-19 12:48:41

标签: javascript node.js express template-engine

我正在为开发人员为我们公司的开发人员创建一个中小型数据驱动的HTML网站。我们的想法是运行一个node.js v0.12+ / express v4+服务器,它提供了一些辅助函数来访问大型数据库。

我想让其他开发人员尽可能少地从Git中提取存储库,创建自定义视图(应该是部分HTML页面正文)并提交回来,例如这样:

app/        
    views/
        common.view1/
            module.html
            module.js
        common.view2/
        team1.view2/
        ...

    common/
        header.html
        footer.html

    main.html   (automatically finds files under views)

我正在寻找的是一个经过验证的,非hackish解决方案或模块(例如,Github上的> 1k星),因此使用最少的代码可以让我在我的节点app.js中执行类似的操作:

xxx.templatify('*.html');
xxx.registerFunction('helper', returnString);    
expressApp.usetemplateengine(xxx);

views/<someview>/module.html

<% include('common/header'); %>
<h2>Hello <% helper('world'); %> h2>

我不介意include是否可以在服务器端定义。然而,modules.html应该尽可能地保留vanilla HTML。

我的问题:我怎么能这样做,是否有一个我缺少的明显标准解决方案?

我看了一下ejsjade和朋友,但大多数似乎强加了他们自己的全新语法(例如,Jade),或者我必须单独注册每个文件。

1 个答案:

答案 0 :(得分:0)

Handlebars是我能想到的最接近html的把手,但您仍然需要将路线映射到.handlebars文件。大声思考,你可以建立一个映射助手方法来为你做这件事,但到目前为止我还没有尝试过这种方法。