【问题标题】:Proper way to include headers + custom server-side .js in express.js / node.js?在 express.js / node.js 中包含标头 + 自定义服务器端 .js 的正确方法?
【发布时间】:2015-10-08 16:24:16
【问题描述】:

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

我想允许其他开发人员以最小的努力从 Git 中提取存储库,创建自定义 view(应该是部分 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)

我正在寻找的是一个经过验证的、非骇客的解决方案或模块(例如,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 应该尽可能地保持原版 HTML。

我的问题:我该如何做到这一点,我是否缺少明显的标准解决方案?

我对@9​​87654323@、jade 和朋友进行了一些研究,但大多数人似乎都在强加自己的全新语法(例如,Jade),否则我必须单独注册每个文件。

【问题讨论】:

    标签: javascript node.js express template-engine


    【解决方案1】:

    Handlebars 是我能想到的最接近 html 的,但您仍然需要将路由映射到 .handlebars 文件。大声思考,您可以构建一个映射辅助方法来为您执行此操作,但到目前为止我还没有尝试过这种方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      相关资源
      最近更新 更多