比如我要做一个博客详情页,我会查文章表,然后将文章标题、作者、内容render出去,这就完成了一个路由请求。但如果我想在同一个页面再显示文章点击量排行榜,就需要另一个查询,如何才能做到render两个或以上mongodb查询的内容?
你的问题应该是进行了异步的数据查询,同时第二次查询依赖第一次查询结果。
var sql = 'xxxxxxx';
async.waterfall([function (cb) {
mysql.connection.query(sql, function (err, result) {
if (err) {
console.log(err);
throw err;
}
var response = [];
//此处省略数据处理逻辑
cb(null, response);
});
}, function (result, cb) {
async.eachSeries(result, function iterator(item, callback) {
var sql = 'x'x'x'x'x'x'x'x'x'x';
mysql.connection.query(sql, function (err, commentResult) {
if (err) {
console.log(err);
throw err;
}
var formatResult = [];
_.each(commentResult, function (item) {
// 省略处理逻辑
formatResult.push(item);
});
if (commentResult.length) {
//xxxxx 省略处理逻辑
}
callback();
});
}, function done(err) {
console.log("err: " + err);
cb(null, result);
});
}], function (err, results) {
cb(null, {
"msg": "查询成功",
"result": 1,
"data": results
});
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。