我正在尝试使用蓝鸟JS和mysql生成嵌套的JSON响应。
期望的JSON如下所示
[
{
"record_id":4,
"parent_id":4,
"record_type":"X",
"display_name":"F",
"item":[
{
"record_id":31,
"parent_id":4,
"record_type":"Z",
"display_name":"G",
"subItem":[
{
"record_id":400,
"parent_id":31,
"record_type":"V",
"display_name":"S"
}
]
},
{
"record_id":35,
"parent_id":4,
"record_type":"Z",
"display_name":"H"
}
]
}
]
我能够生成嵌套的JSON,直到“ item”,并且不确定如何获取“ subitem”。
我的代码:
var Promise = require('bluebird')
knex.select().table({header:'mytable'}).where('record_type','X')
.then (function(rows){
var promises = rows.map(function(header){
return knex.select().table({item:'mytable'}).whereRaw('parent_id != record_id').andWhere('parent_id',header.record_id)
.then(function(item){
header['item'] = item
return header;
});
})
return Promise.all(promises)
}).then(function(elements){
response.json (elements);
})
});