Node.js nodejs如何在一个对象中聚合2个mysql查询
我是node js的新手,我正在尝试构建一个express API,该API应返回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'
[
{
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