gpt4 book ai didi

javascript - Node js不保存方法PUT

转载 作者:行者123 更新时间:2023-12-03 03:15:49 24 4
gpt4 key购买 nike

我正在尝试更新数组内的对象值。我已经完成了该方法并在数组中搜索了我想要的元素,并返回了 200。但是当我执行另一个请求后,该值返回到原始值(不保存)。

首先这是架构:

    { 
"_id" : "1",
"username" : "a",
"elements" : [{"_id": "22", "name":"bb"}, {"_id":"33", "name": "cc"}]
}

这是我的方法

update = function(req, res) {
User.findById(req.params.id, function (err, user) {
if (!user) {
res.send(404, 'User not found');
}
else{
var array = user.elements;
for (var i = 0; i < array.length; i++) {
if (array[i]._id == "22") {
result = array[i];
if (req.body.name != null) result.name = req.body.name;
result.save(function(err) {
if(!err) {
console.log('Updated');
}
else {
console.log('ERROR: ' + err);
}
res.send(result);
});
break;
}
}
}
});
}

我不知道我做错了什么。我的意思是我简化了一切,但我认为问题出在方法上。

最佳答案

您必须像这样保存user对象和结果:

  update = function(req, res) {
User.findById(req.params.id, function (err, user) {
if (!user) {
res.send(404, 'User not found');
}
else{
var array = user.elements;
for (var i = 0; i < array.length; i++) {
if (array[i]._id == "22") {
result = array[i];
if (req.body.name != null) result.name = req.body.name;

break;
}
}
user.save(function(err) {
if(!err) {
console.log('Updated');
}
else {
console.log('ERROR: ' + err);
}
res.send(user);
});
}
});

}

关于javascript - Node js不保存方法PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46774379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com