I am newbie to Node.js and I am struggling with asynchronous calls.
In this below code I have an array of feeds for example(1,2,3..). each feed can contain multiple images and now i want to delete the images from the folder and from database.
What i have done so far:
for(var i=0; i<feedArr.length; i++){
var feedId = feedArr[i].feedid;
var listFeedImageQuery = "select imageUrl from feedImages where feedId='"+feedId+"'";
var deleteFeedImagesQuery = "delete from feedImages where feedId='"+feedId+"'";
model.client.query(listFeedImageQuery,function(err,result){
if(result.rows.length > 0){
for(var j=0; j<result.rows.length; j++){
fs.unlink(result.rows[j].imageurl, function(err) {
if(err)
console.log(err);
});
}
model.client.query(deleteFeedImagesQuery,function(err,result){
if(err)
console.log(err)
else
console.log(feedId +' were removed'); // last feedId only gets removing from database
});
}
});
}
Here I am able to delete the images from the image storage folder, but I am unable to delete the records from the database. Only the last feed record is getting deleted. The rest of the feedImage records are in database.
I researched something about async modules, but i don't know how to apply it to this issue.
