Я пытаюсь сгенерировать вложенный ответ JSON, используя bluebird JS с mysql.
Ожидаемый 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);
})
});