Node.js 未处理的拒绝类型错误:无法读取属性';名称';空的
以下是我的代码:Node.js 未处理的拒绝类型错误:无法读取属性';名称';空的,node.js,Node.js,以下是我的代码: router.post('/getTrainingProgramByTPType', function (req, res) { var query = { ... }; // simplified for clarity in stackoverflow models.TrainingProgram.findAll(query).then(function (trainingPrograms) { var resData = [];
router.post('/getTrainingProgramByTPType', function (req, res) {
var query = { ... }; // simplified for clarity in stackoverflow
models.TrainingProgram.findAll(query).then(function (trainingPrograms) {
var resData = [];
console.log(typeof req.body.userType, req.body.userType);
trainingPrograms.forEach(trainingProgram => {
if (trainingProgram.CourseType.name === req.body.userType || trainingProgram.CourseType.name === "EVERYONE" || (!req.body.isExperienced && trainingProgram.CourseType.name === "OPTIONAL")) {
resData.push(trainingProgram);
}
else {
var resDataCourse = [];
var a;
trainingProgram.Courses.forEach(course => {
course.Classes.forEach(classes => {
classes.ClassRecords.forEach(classRecord => {
if (classRecord.User.email === req.body.email) {
a = 1;
resDataCourse.push(course);
}
});
});
});
if (a === 1) {
resData.push({
id: trainingProgram.id,
name: trainingProgram.name,
description: trainingProgram.description,
imgLink: trainingProgram.imgLink,
courseTypeId: trainingProgram.courseTypeId,
CourseType: trainingProgram.CourseType,
Courses: resDataCourse
});
}
}
});
var datasend = {
success: true,
msg: 'send list success',
trainingProgram: resData,
};
res.send(datasend);
});
});
我得到一个错误:
什么可能导致类型错误?我打赌
trainingProgram.CourseType
为空。在这种情况下,当您尝试访问trainingProgram.CourseType.name
时,会出现错误
:
trainingPrograms.forEach(trainingProgram => {
if (trainingProgram.CourseType.name === ...) { // <- ERROR HERE
....
}
...
}
trainingPrograms.forEach(trainingProgram => {
if (trainingProgram.CourseType.name === ...) { // <- ERROR HERE
....
}
...
}
if (trainingProgram.CourseType && trainingProgram.CourseType.name === ...) {