Node.js 服务器端使用NodeJS、Express、handlebar和expbhs呈现json数据
因此,我在服务器端使用ExpressJS和Handlebar以及expbhs视图引擎呈现一些JSON数据时遇到了问题。鉴于以下情况: obj: 控制器:Node.js 服务器端使用NodeJS、Express、handlebar和expbhs呈现json数据,node.js,express,handlebars.js,Node.js,Express,Handlebars.js,因此,我在服务器端使用ExpressJS和Handlebar以及expbhs视图引擎呈现一些JSON数据时遇到了问题。鉴于以下情况: obj: 控制器: exports.displayData = (req, res) => { //assume valid json res.render('myTemplate', { obj }); } 我的车把模板(myTemplate.hbs)如下所示: {{#each this}} <di
exports.displayData = (req, res) => {
//assume valid json
res.render('myTemplate', {
obj
});
}
我的车把模板(myTemplate.hbs)如下所示:
{{#each this}}
<div class='section'>
<div id="{{prop1}}-section" >
<div>
<img src='{{prop2}}'>
</div>
<div>
<div class=''>
stuff{{prop3}}
</div>
<div>
other stuff: {{prop4}}
</div>
</div>
<div>
Data for: {{prop1}}
</div>
</div>
</div>
</div>
{{/each}}
exports.displayData = (req, res) => {
//assume valid json
res.render('myTemplate', {
data: obj,
layout: 'nonDefault'
});
}
{{{#每个this}
东西{{prop3}
其他材料:{{prop4}
数据用于:{{prop1}
{{/每个}}
这将呈现模板,但不会填充任何属性值。我意识到在我的
res.render()调用中将我的obj包装在另一个obj中,因此我将调用更改为:
exports.displayData = (req, res) => {
//assume valid json
res.render('myTemplate', obj);
}
这部分地解决了问题。我正在填充所有obj数据,但它也在用空属性值呈现额外的.section
s
因此,我尝试了以下方法:
在我的控制器中,我将res.render()
json参数更改为{data:obj}
,如下所示:
exports.displayData = (req, res) => {
//assume valid json
res.render('myTemplate', { data: obj });
}
{{#each data}}
<div class='section'>
<div id="{{prop1}}-section" >
<div>
<img src='{{prop2}}'>
</div>
<div>
<div class=''>
stuff{{prop3}}
</div>
<div>
other stuff: {{prop4}}
</div>
</div>
<div>
Data for: {{prop1}}
</div>
</div>
</div>
</div>
{{/each}}
在我的模板中,我将我的#每个块从this
更改为data
,如下所示:
exports.displayData = (req, res) => {
//assume valid json
res.render('myTemplate', { data: obj });
}
{{#each data}}
<div class='section'>
<div id="{{prop1}}-section" >
<div>
<img src='{{prop2}}'>
</div>
<div>
<div class=''>
stuff{{prop3}}
</div>
<div>
other stuff: {{prop4}}
</div>
</div>
<div>
Data for: {{prop1}}
</div>
</div>
</div>
</div>
{{/each}}