私はJavascript(ES6)を使用して穏やかなAPIを開発しています。以下のコードの場合、私は講師とコースの2つのテーブルを持っています。私は特定の講師が持っているすべてのコースを送ろうとしています。各ブロック外のJavaScriptは実行されません
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);
}
});
});
ここでは、コンソールの「outside1」と「outside」は表示されません。結果として、 "myCourses"配列は空を返します。私の問題は何か説明できますか?ありがとうございました。