Node Mongo Patch request не синхронизирован с использованием await - PullRequest
0 голосов
/ 01 октября 2018

У меня проблемы с синхронизацией возвратов при использовании await.Вся информация обновляется в Монго без проблем, проблема заключается в том, что res.status (200) .send (updatedData);возвращает старые данные, а не исправленные.

const updateUserData = async (req, res) => {
if (!(req.params.id && req.body.id && req.params.id === req.body.id)) {
        const message =
          `Request path id (${req.params.id}) and request body id ` +
          `(${req.body.id}) must match`;
        console.error(message);
        return res.status(400).json({ message: message });
    }
try{
    const toUpdate = {};
    const updateableFields = ["username","firstName", "lastName","bio","settings","cardCollection", "avatar"];

    updateableFields.forEach(field => {
    if (field in req.body) {
      toUpdate[field] = req.body[field];
    }
    }); 
    const id = req.params.id;
    if(!id) return res.status(404).send({message:"id not found"})
    if(!toUpdate) return res.status(404).send({message:"text not found"})
    const updatedData = await User.findByIdAndUpdate(id, toUpdate);
    console.log(updatedData);
    res.status(200).send(updatedData);
}
catch(err){
  res.status(500).send({message:"unable to update data"})
}

}

1 Ответ

0 голосов
/ 01 октября 2018

Вы должны передать третий параметр findByIdAndUpdate в качестве параметров {new : true} для возврата обновленного документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...