Ответ 1
Итак, вы поняли свою проблему, вроде. req.body уже является объектом. Но вы действительно должны дезинформировать его, прежде чем вносить его в свое обновление, а затем сохранить объект. Там много причин для этого, но с Mongo, когда вы получаете только частичный объект, вы замените объект в коллекции, который в вашем примере с пользователем может быть плохим. Когда я отправляю пользователей в интерфейс, я отбираю вещи, которые я не хочу передавать по всему, как пароли. Другая причина - золотое правило разработки веб-приложений - никогда не доверяйте клиенту! Я бы начал с чего-то вроде:
var user = User.findOne(req.body.id).done(function(error, user) {
if(error) {
// do something with the error.
}
if(req.body.email) {
// validate whether the email address is valid?
// Then save it to the object.
user.email = req.body.email;
}
// Repeat for each eligible attribute, etc.
user.save(function(error) {
if(error) {
// do something with the error.
} else {
// value saved!
req.send(user);
}
});
});