findByIdAndUpdate ничего не обновляет - PullRequest
0 голосов
/ 20 января 2019

Я следую учебному пособию, но оно кажется старым, и похоже, что все изменилось, у меня есть страница редактирования, которая пытается редактировать существующие данные в mongodb, но она просто не хочет работать.

Вот что сделал парень из этого урока:

app.put("/blogs/:id",function(req,res){
Blog.findByIdAndUpdate(req.params.id,req.body.blog,function(err,updatedBlog){
if (err) {
  res.redirect("/blogs");
}else {
  res.redirect("/blogs/" + req.params.id);
}
  });
});

с тех пор, как я попытался с помощью findOneAndUpdate (), но я не могу с этим сработать, я попытался заменить .id на ._id вот так:

app.put("/blogs/:id",function(req,res){
   Blog.findByIdAndUpdate(req.params._id,req.body,{new:true},function(err,updatedBlog){
if(err){
  console.log(err);
}else{
  console.log("Blog updated");
  res.redirect("/blogs/"+req.params._id);
}
  });
});

и он идет к оператору else, потому что я получаю console.log, но он все равно ничего не обновляет

1 Ответ

0 голосов
/ 20 января 2019

Я думаю, что ваш запрос на обновление не в правильном формате.

Ваш запрос должен выглядеть как this

    Blog.findByIdAndUpdate(req.params.id, {$set: {blog: req.body.blog}}, function(err, updatedData){
        if(err){console.log(err);}
        else{ console.log('blog  updated');
         // do other stuff.....
        }

})
...