router.post('/register', (req, res, next) => {
var subjectsID = [];
if (req.body.hasOwnProperty('subjects')) {
console.log("Teacher have subjects");
for (var i = 0; i < req.body.subjects.length; i++) {
Subject.getSubjectByName(req.body.subjects[i], (error, subject) => {
if (error) throw error;
if (!subject) {
res.json({
success: false,
msg: "One of the entered subjects dosent exist",
subject: req.body.subjects[i],
error: error
});
} else{
console.log("Subject by id : " + subject._id + " is verified");
subjectsID.push(subject._id);
}
});
}
console.log("All subjects verified");
console.log(subjectsID);
}
我的主要问题是:当我输入这个URL的信息时,在得到console.log("All subjects verified");
之前我得到了subjectsID.push(subject._id);
所以在下一个代码段(未发布)中,数组是空的,我不能拉出所需的信息。我该如何修复它以便它首先执行for循环,然后才会进入下一个代码段。
子问题:当我输入一个不在DB中的主题(mongoDB,mongoose)时,subject: req.body.subjects[i]
行关闭了我的程序并出现错误:发送后不能设置标题。我确定它与我的主要问题有关,所以我们会欢迎基本的解释。