node.js art-template能不能一个模板,多次渲染

//获取栏目列表
mysql.getLm(function (lmParams) {
lmData = lmParams;
//使用模板替换
// module.exports.lm = template('./index.html', {lm: lmParams});
})

//获取要闻
mysql.getYw(function (ywzParams) {
ywzData = ywzParams;
//module.exports.ywz = template('./index.html', { ywz: ywzParams });
})

var value = [
    {'lm': lmData },
    {'ywz': ywzData}
]
var htmls = template('./index.html', {
    indexData: value
})
module.exports.index = htmls;

<ul>

                        {{each indexData as value}}
                        <li> <a href="http://127.0.0.1:8000{{$value.lm.colName}}">{{$value.lm.colName}}</a></li>
                        {{/each}}


                    </ul>
{{each indexData as value}}
                            {{if $value.ywz.type == '0'}}
                            <dt><a href="http://127.0.0.1/{{$value.ywz.fnUrl}}/{{$value.ywz.artId}}" class="Bold" target="_blank">{{$value.ywz.fnName}}
                            </a></dt>
                            {{else}}         
                            <dd><a href="http://127.0.0.1/{{$value.ywz.fnUrl}}/{{$value.ywz.artId}}" target="_blank">{{$value.ywz.fnName}}</a></dd>
                            {{/if}}
* 1. 1.                             {{/each}}

每次渲染只能渲染一个 还得单独去查询, 我想多次查询 然后一次渲染,才学node,希望各位大佬帮帮忙

参考GPT和自己的思路:

可以通过将多个数据合并到一个对象中,再将这个对象作为模板渲染时的数据源,从而实现一次渲染多个模板的效果。具体实现如下:

  1. 将获取栏目列表和获取要闻的代码合并成一个函数,该函数返回一个包含两个数据对象的数组,代码如下:
function getData(callback) {
  mysql.getLm(function(lmParams) {
    var lmData = lmParams;
    mysql.getYw(function(ywzParams) {
      var ywzData = ywzParams;
      var data = [
        {lm: lmData},
        {ywz: ywzData}
      ];
      callback(data);
    });
  });
}
  1. 在调用该函数时,将渲染模板所需的数据对象传递给模板引擎进行渲染,代码如下:
getData(function(data) {
  var html = template('./index.html', {indexData: data});
  module.exports.index = html;
});
  1. 在模板中遍历渲染包含多种数据对象的数组,代码如下:
{{each indexData as item index}}
  {{if item.lm}}
    // 渲染栏目列表数据
  {{else item.ywz}}
    // 渲染要闻数据
  {{/if}}
{{/each}}

通过这种方式,可以实现多次查询,同时一次渲染多个模板的效果。