I am trying to create Dynamic JSON from database but due to async behaviour of node js I am not able to do that.
exports.wsGetDirectoryTree = function(request,response){
pool.getConnection(function(err, connection) {
if (err) {
console.log("Error while connecting to DB : " + err);
response.send(error);
return;
} else {
// Org List
objDb.wsGetOrganisationTree(connection, function(callback) {
if(callback){
var data= JSON.stringify(callback);
var jsonObject = JSON.parse(data);
var count = Object.keys(jsonObject).length;
var finalResponse = '';
var org = '';
var gst = '';
var url = '';
// Org List
for(var i=0;i<count;i++){
var temp = JSON.stringify(jsonObject[i]);
var tempData = JSON.parse(temp);
(function(i){
// {"Apple"
org = '{'+'"'+tempData.organisation_name+'":';
console.log("org -> "+org);
// Guest list
objDb.wsGetGuestTree(tempData.organisation_id,connection, function(callback) {
if(callback){
var data= JSON.stringify(callback);
var jsonObject = JSON.parse(data);
var count = Object.keys(jsonObject).length;
// Guest list
for(var j=0;j<count;j++){
var temp = JSON.stringify(jsonObject[j]);
var tempData = JSON.parse(temp);
//{"Jhon":
gst = '{'+'"'+tempData.guest_name+'":';
console.log("gst = "+gst);
finalResponse = org + gst;
// Url list
objDb.wsGetUrlTree(tempData.guest_id,connection, function(callback) {
if(callback){
var data= JSON.stringify(callback);
finalResponse = finalResponse + data;
console.log("finalResponse = "+finalResponse);
return;
} else {
return;
}
});
}
data = data.replace('[','');
data = data.replace(']','');
return;
} else {
return;
}
});
})(i); //function for counting
} //loop end
response.send(data);
return;
} else {
response.send(invalidData);
return;
}
});
}
connection.release();
});
};
I am expecting below output -
See Question&Answers more detail:os{ "Organisation01": { "Guest01": { "Images": ["IMG-20180117-WA0004.jpg", "IMG-20180117-WA0004.jpg"], "Video": ["IMG-20180117-WA0004.jpg", "IMG-20180117-WA0004.jpg"] }, "Guest02": { "Images": ["IMG-20180117-WA0004.jpg", "IMG-20180117-WA0004.jpg"] } }, "Organisation02": { "Guest01": { "Images": ["IMG-20180117-WA0004.jpg", "IMG-20180117-WA0004.jpg"] } }, "Organisation03": { "Guest01": { "Images": ["IMG-20180117-WA0004.jpg", "IMG-20180117-WA0004.jpg"] } }, "Organisation04": { "Guest01": { "Images": ["IMG-20180117-WA0004.jpg", "IMG-20180117-WA0004.jpg"] } } }