Я искал похожие случаи, но мне не удалось выяснить, где проблема в следующем фрагменте кода.
Мои схемы выглядят так:
var mongoose = require('mongoose');
var teamMemberModelSchema = new mongoose.Schema({
"email": {
"type": String,
"required": true,
"min": 5,
"max": 20
},
"name": {
"type": String,
"required": true,
"min": 5,
"max": 20
},
"role": {
"type": String,
"required": true,
"min": 20,
"max": 50
},
"twitter": {
"type": String,
"required": true,
"min": 20,
"max": 50
},
"facebook": {
"type": String,
"required": true,
"min": 20,
"max": 50
},
"linkedin": {
"type": String,
"required": true,
"min": 20,
"max": 50
},
});
var teamModelSchema = new mongoose.Schema({
"title": {
"type": String,
"required": true,
"min": 5,
"max": 20
},
"headline": {
"type": String,
"required": true,
"min": 5,
"max": 30
},
"description": {
"type": String,
"required": true,
"min": 5,
"max": 80
},
"members": [teamMemberModelSchema]
}, { collection: 'team' });
teamModelSchema.set('collection', 'team');
mongoose.model('team', teamModelSchema);
mongoose.model('member', teamMemberModelSchema);
проблема приходит при попытке добавить новый элемент в массив members внутри teamModelSchema.
Возвращает «TypeError: Невозможно прочитать свойство 'pu sh' of undefined"
module.exports.addTeamMember = function (req, res) {
TeamModel.find().select("members").exec(
function (err, teamInfo) {
if (err) {
responseUtilities.sendJsonResponse(res, err, teamInfo);
} else {
console.log(teamInfo);
teamInfo.members.push({
email: req.body.email,
name: req.body.name,
role: req.body.role,
twitter: req.body.twitter,
facebook: req.body.facebook,
linkedin: req.body.linkedin
});
teamInfo.save(function (err, teamInfo) {
var thisMember;
if (err) {
responseUtilities.sendJsonResponse(res, err, teamInfo);
} else {
thisMember = teamInfo[teamInfo.length - 1];
responseUtilities.sendJsonResponse(res, err, teamInfo);
}
});
}
}
);
};
У меня есть пробовал несколько вариантов, но никто не дал желаемого результата.
Учитывая этот сценарий, как я могу добавить новый элемент в члены?
PS: sendJsonResponse - это только функция, которая выполняет статус res и json объект.