I am developing Restful API using Javascript(ES6). For below code piece, I have two table Lecturer and Course. I am trying to send all courses that particular lecturer has.
api.get('/getCourses/:lecturer_id', (req, res) => {
let myCourses = [];
let send = true;
Lecturer.findById(req.params.lecturer_id, (err, lecturer) => {
if(err) {
res.json({ ok : '0'});
} else {
lecturer.courses.forEach(value => {
Course.findById(value, (err, course) => {
console.log(value);
if(err) {
res.json({ok : '0'});
send = false;
} else {
console.log('in else');
console.log(course)
myCourses.push(course);
console.log(myCourses.length);
}
console.log(myCourses.length);
});
console.log('outside1');
});
console.log('outside');
res.json(myCourses);
}
});
});
But in here, in the console "outside1" and "outside" are not printed. As a result the "myCourses" array returns empty. Can you explain what is my problem. Thank you.