在node.js中请求带有把手内容的html文件

时间:2015-07-24 21:09:34

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

第一个问题,所以我希望我的格式化工作。我有一个运行的节点服务器工作得很好。我正在编写一个简单的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类似的方式远程阅读此文件?

1 个答案:

答案 0 :(得分:0)

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

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