Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs如何在一个对象中聚合2个mysql查询_Node.js - Fatal编程技术网

Node.js nodejs如何在一个对象中聚合2个mysql查询

Node.js nodejs如何在一个对象中聚合2个mysql查询,node.js,Node.js,我是node js的新手,我正在尝试构建一个express API,该API应返回2个mysql查询的聚合,响应应如下所示: [ { ClientId: 1, ClientName : 'client01', Orders : [ { OrderId: 88, OrderName: 'Order999'

我是node js的新手,我正在尝试构建一个express API,该API应返回2个mysql查询的聚合,响应应如下所示:

      [
        {
          ClientId: 1,
          ClientName : 'client01',
          Orders : [
            {
              OrderId: 88,
              OrderName: 'Order999' 
            },
            {
              OrderId: 99,
              OrderName: 'Order99' 
            }
          ]
        },
        {
          ClientId: 2,
          ClientName : 'client02',
          Orders : [
            {
              OrderId: 66,
              OrderName: 'Order66' 
            },
            {
              OrderId: 99,
              OrderName: 'Order99' 
            }
          ]
        }
      ] 
我得到了第一个问题:

SELECT id, name FROM clients
第二个:

SELECT * from orders WHERE clientId = 1
我的想法是首先调用第一个查询,列出每个客户机,然后执行foreach客户机(或for loop?)调用第二个mysql查询,但将ClientId作为参数

但我无法在第二个查询中访问变量

router.get('/', (req, res) => {
    let Clients = require('../models/ClassClient')
    Clients.all(function(dClients){
        allDatas = dClients 
        for (i = 0; i < dClients.lenght; i++) {
            allDatas[i].Orders = [];
            let Orders = require('../models/ClassOrders')
            Orders.byClientIdId(dClients[i].ClientId, function(dOrders){
                allDatas[i].Orders = dOrders
            })
        }
        res.status(200);
        res.send(allDatas)
    })
})
我怎样才能做到这一点

谢谢

let connection = require('../config/db')

class orders {

    static byClientIdId(id, cb) {
        connection.query(
            'SELECT * FROM orders WHERE ClientId = ?', [id],
            (err, rows) => {
                if(err) throw err
                cb(rows)
            }
        )
    }

}

module.exports = subscription