【问题标题】:Requesting an html file with handlebars content in node.js在 node.js 中请求带有车把内容的 html 文件
【发布时间】:2015-10-15 16:11:50
【问题描述】:

第一个问题,所以我希望我的格式有效。我有一个运行良好的节点服务器。我正在编写一个简单的 javascript 文件来从该服务器获取 HTML 文件,如下所示

#!/usr/bin/env node
var request = require('request');

request.get("http://my.ip.address/htmlTemplate.html", function (error, response, body){
    if(!error){
        console.log(body);
        var x = body;
    }
});

HTML 模板中包含 Handlebars,如下所示:

<!-- htmlTemplate.html -->

<div class="fake" id="thing1"></div>

{{#if foo}}
    <div class="conditional_html">
        All this stuff inside here.
    </div>
{{/if}}

<div class="{{bar}} class2" id="thing2"></div>

请求有效,我收到了内容,但我从响应中得到的内容是这样的:

<div class="fake" id="thing1"></div>


<div class=" class2" id="thing2"></div>

车把内容被省略。我想以原始的、未编译的形式(作为纯文本)获取文件。这可以通过http请求实现吗?我可以用类似于fs的方式远程读取这个文件吗?

【问题讨论】:

    标签: javascript html node.js get handlebars.js


    【解决方案1】:

    Handlebars 内容没有被省略。您没有在请求中提供foo 的值,因此if foo 返回false。将请求 url 修改为 http://my.ip.address/htmlTemplate.html?foo=true 之类的内容应该会使条件内容在最终响应中呈现。

    就避免渲染而言,这取决于处理请求的服务器的配置(在您的情况下为http://my.ip.address)。如果所有文档响应都在渲染引擎之后(通常是这种情况),则您无法绕过渲染。但是,您可以有选择地(手动)设置某些路由来提供响应而无需编译。无需调用Handlebars.compile()template() 即可发送响应。

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多