无法将数据传送到 Node.js 中的车把模板

Can't delivery data to my handlebars template in Node.js

对于可能的情况,我遵循此解决方案:

这是我的代码:

app.get('/', (req, res) => {
Cost.aggregate([
    {
        $group: {
            "_id": "$item",
            "nameItem": {
                $first: "$item"
            },
            "subtotal": {
                $sum: "$price"
            }
        }
    }, {
        $project: {
            "doc": {
                "_id": "$_id",
                "item": "$nameItem",
                "total": "$subtotal"
            }
        }
    }, {
        $group: {
            "_id": null,
            "priceTotal": {
                $sum: "$doc.total"
            },
            "result": {
                $push: "$doc"
            }
        }
    }, {
        $project: {
            "result": 1,
            "_id": 0,
            "priceTotal": 1
        }
    }
])
.exec(function(error, costs){
    console.log('%j',costs);
    var nameItem = nameItem;
    var total = total;
    res.render('index', {
        costs: costs,
        nameItem: nameItem,
        total: total,
        priceTotal: priceTotal

    });
})
     
});

我得到了这个 console.log('%j', costs) 输出 =

[{
  "priceTotal":450,
  "result":[
     {"_id":"1","item":"roller","total":100},
     {"_id":"2","item":"brush","total":45},
     {"_id":"3","item":"paint","total":45},
     {"_id":"4","item":"glue","total":260}]
}]

这是我的模板,还没有显示任何内容:

<p>total price = {{priceTotal}}</p>
{{#costs}}
<p>{{nameItem}} = {{total}}</p>
{{/costs}}

我的问题是如何将每个“item”、“total”和“priceTotal”传送到我的 handlebars 模板?应该是这样

total price = 450
roller = 100
brush = 45
paint = 45
glue = 260

对于这个结果,你应该运行脚本中的这段代码来显示你的数据:

<div id="DocumentResults"></div>
<script id="document-template" type="text/x-handlebars-template">
<div>
    {{#each this}}
    <p>total price = {{priceTotal}}</p>
        {{#result}}
        <p>{{item}} = {{total}}</p>
      {{/result}}
    {{/each}}
</div>
</script>