我遇到一个问题何时使用哪一个,以下是mongoose的更新功能,它运行正常。
// Updates an existing form in the DB.
exports.update = function(req, res) {
if(req.body._id) { delete req.body._id; }
Form.findById(req.params.id, function (err, form) {
if (err) { return handleError(res, err); }
if(!form) { return res.send(404); }
var updated = _.assign(form, req.body);
updated.formContent = req.body.formContent;
updated.save(function (err) {
if (err) { return handleError(res, err); }
return res.json(200, form);
});
});
};
尝试以下操作来替换表单数据。
_.assign(form, req.body); // Works (update database)
_.merge(form, req.body); // Not Work (database not updating, remain the same)
_.extend(form, req.body); // Works (update database)
上述结果显示,当发布数据中有对象时,合并不起作用。
有些人可以解释为什么一个人没有工作,其他人都可以。我已阅读以下问题
Lodash - difference between .extend() / .assign() and .merge()
但我很想知道哪一个不会更新数据库,但是当应用分配并扩展它时,