//获取栏目列表
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和自己的思路:
可以通过将多个数据合并到一个对象中,再将这个对象作为模板渲染时的数据源,从而实现一次渲染多个模板的效果。具体实现如下:
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);
});
});
}
getData(function(data) {
var html = template('./index.html', {indexData: data});
module.exports.index = html;
});
{{each indexData as item index}}
{{if item.lm}}
// 渲染栏目列表数据
{{else item.ywz}}
// 渲染要闻数据
{{/if}}
{{/each}}
通过这种方式,可以实现多次查询,同时一次渲染多个模板的效果。