@Denis_FE

Model.findOneAndUpdate() больше не принимает обратный вызов?

const getOne = async (req, res) => {
  try {
    const postId = req.params.id;

    PostModel.findOneAndUpdate(
      {
        _id: postId,
      },
      {
        $inc: { viewsCount: 1 },
      },
      {
        returnDocument: "after",
      },
      (err, doc) => {
        if (err) {
          console.log(err);
          return res.status(500).json({
            message: "не удалось получить статью",
          });
        }

        if (!doc) {
          return res.status(404).json({
            messsage: "Статья не найдена",
          });
        }

        res.json(doc);
      }
    );
  } catch (err) {
    console.log(err);
    res.status(500).json({
      message: "не удалось получить статьи",
    });
  }
};


Добрый день, каак исправить ошибку? терминал пишет Model.findOneAndUpdate() no longer accepts a callback.заранее спасибо
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ywhug
Ха, пишу точно такой же код и точно такая же ошибка. Могу только дать пищи для размышления. С каким то обновлением эта функция не может в своих аргументах принимать функции(тоесть колбэки), а у вас и у меня 4 аргумент является функцией, вот терминал и ругается. Только куда переставить эту функцию я не придумал, если придумаете то отзовитесь)
Ответ написан
@sichen
export const getOne = (req, res) => {
try {
const postId = req.params.id

PostModel.findOneAndUpdate(
{
_id: postId,
},
{
$inc: { viewsCount: 1 },
},
{
returnDocument: 'after',
},
).then((post) => {
if (!post) {
return res.status(404).json({
message: 'статьтя не найдена',
})
}

res.json(post)
})
} catch (error) {
console.log(error)
res.status(500).json({
messgae: 'не удалось получить статью',
})
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы