开发者社区> 问答> 正文

mongodb在路由中如何把不同表的查询结果render出去?

比如我要做一个博客详情页,我会查文章表,然后将文章标题、作者、内容render出去,这就完成了一个路由请求。但如果我想在同一个页面再显示文章点击量排行榜,就需要另一个查询,如何才能做到render两个或以上mongodb查询的内容?

展开
收起
蛮大人123 2016-06-15 14:41:37 2180 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你的问题应该是进行了异步的数据查询,同时第二次查询依赖第一次查询结果。

    
      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
        });
      });
    2019-07-17 19:39:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
阿里云MongoDB云服务构建 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载