例如,我有这个JSON文档" foo.json":
{
"foo": [
{
"bar": "Hello World!"
},
{
"bar": "The End"
}
]
}
在Node.js中,我想使用模板(handlebars或any)从JSON文档生成一个字符串,例如:
<p>Hello World!</p><p>The End</p>
...然后将该字符串值分配给Node.js中的变量。最后,我将更多值连接到变量,并将最终变量值输出为html文档。
这可以在不使用像Express这样的框架的情况下完成吗?
答案 0 :(得分:33)
如果你想使用把手,只需抓住npm模块:
npm install handlebars
然后在您的脚本中,您可以使用把手基于遍历数组foo
的简单模板来呈现输出,并为每个项创建<p>
,其中包含{{的文本1}} property:
bar
<强> - 编辑 - 强>
如果要使用.hbs模板文件而不是字符串var handlebars = require('handlebars');
// get your data into a variable
var fooJson = require('foo.json');
// set up your handlebars template
var source = '{{#each foo}}<p>{{this.bar}}</p>{{/each}}';
// compile the template
var template = handlebars.compile(source);
// call template as a function, passing in your data as the context
var outputString = template(fooJson);
,可以使用source
模块使用fs
读取文件,然后调用fs.readFile
返回的缓冲区,并使用它来调用渲染函数。试试这个:
toString()