Хорошо, поэтому у меня проблема с обновлением модели. Я могу создать документ, и он прекрасно работает, но когда я пытаюсь обновить, я получаю сообщение об ошибке.
/Users/User/Sites/project/app.js:182
a.features.kids = req.body.a.features.kids;
^
TypeError: Cannot read property 'kids' of undefined
Модель выглядит так:
Affiliate = new Schema({
'name': String,
'address': String,
'features': {
'kids': { type: Boolean, default: false },
}
});
Мои поля формы выглядят так. Они используются как для создания, так и для обновления с добавлением дополнительных полей для обновления:
<input type="text" name="a[name]" id="a[name]" />
<input type="text" name="a[address]" id="a[address]" />
<input <% if (a.features.kids) { %>checked <% }; %>type="checkbox" name="a[features.kids]" id="a[features.kids]" />
Код для создания нового предмета. Это отлично работает, и вся информация добавлена правильно:
var a = new Affiliate(req.body.a);
a.save(function() {
res.redirect('/admin');
});
Неисправный код для обновления предмета:
Affiliate.findOne({ _id: req.params.id}, function(err, a) {
if (!a) return next(new NotFound('Affiliate not found'));
a.name = req.body.a.name;
a.address = req.body.a.address;
a.features.open_gym = req.body.a.features.kids;
a.save(function(err) {
res.redirect('/admin');
});
});