Node.js 服务器端使用NodeJS、Express、handlebar和expbhs呈现json数据

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

因此,我在服务器端使用ExpressJS和Handlebar以及expbhs视图引擎呈现一些JSON数据时遇到了问题。鉴于以下情况:

obj:

控制器:

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}}