node如何在get('/')方法中执行两次查询并render两个数据到页面中?-问答-阿里云开发者社区-阿里云

开发者社区> 落地花开啦> 正文

node如何在get('/')方法中执行两次查询并render两个数据到页面中?

2016-02-20 18:46:31 2484 1

一个页面,页面中有两个列表:可用陪聊和不可用陪聊,这两种数据分别存储在redis的peiliaos和upeiliaos两个List中,因为查询返回的数据只能在回调函数里处理,所以我只能查询一个列表中的数据,代码如下:

app.route('/').get(function (req, res, next) {
    redisDB.lrange("peiliaos", 0, -1, function (err, data) {
      if (err) {
        console.log('fail to get name' + err);
        redisDB.quit();
        return null;
      }
      if (data === null) {
        console.log('no data');
      }
 
      var peiliaos = [];
      for (var x in data) {
        var peiliao = JSON.parse(data[x]);
        peiliaos.push(peiliao);
      }
      var renderData = {
        title : '闷子聊天模拟器',
        peiliaos : peiliaos,
        testdata : 'this is test data'
      };
 
      res.render('index2', renderData);
    });
  });

想查不可用陪聊的时候,由于执行是异步的,导致可用陪聊的数据无法赋给外层的变量给后续的渲染逻辑,我不想把不可用陪聊的查询逻辑嵌套在可用陪聊的查询函数里,这样如果查询的数据变多,嵌套就太多了,请问有没有什么好的解决办法?

取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:45:40

    做做修改

    redisDB.multi([
          ['lrange','peiliaos',0, -1],
          ['llen','uPeiliaos']
          ]).exec(function (err, replies) {
            if (err) {
              console.log(err);
              return false;
            }
           console.log('rep0:----->' + replies[0]);
           console.log('rep1:----->' + replies[1]);
        });
    0 0
相关问答

10

回答

【精品问答合集】Hbase热门问答

hbase小能手 2019-05-29 14:37:26 120271浏览量 回答数 10

38

回答

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2014-12-25 15:13:38 91774浏览量 回答数 38

19

回答

[@倚贤][¥20]学习Java后端的疑惑

小江同志 2018-10-24 16:11:21 132243浏览量 回答数 19

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292318浏览量 回答数 110

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256890浏览量 回答数 38

62

回答

磁盘原地扩容功能4月22日正式上线

艳馨 2015-04-21 23:40:33 96100浏览量 回答数 62

23

回答

【精品问答合集】Redis热门问答

李博 bluemind 2019-05-29 16:36:15 126318浏览量 回答数 23

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204022浏览量 回答数 2

11

回答

【精品问答合集】MongoDB热门问答

李博 bluemind 2019-05-29 16:50:19 120885浏览量 回答数 11

13

回答

【精品问答合集】Java热门问答

李博 bluemind 2019-05-29 16:00:45 124844浏览量 回答数 13
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载