Сайт завис из-за загрузки после использования findOne () и updateOne () - PullRequest
0 голосов
/ 25 сентября 2019

Мой сайт зависает после нажатия кнопки «Мне нравится».Моя база данных mongo обновляется нормально, и если я перенаправлю сайт, чтобы загрузить новую страницу после нажатия, это нормально.Есть ли способ сделать это без перезагрузки страницы?

JS

app.post("/", async function(req) {

    console.log("/ works as post route");
    const requestedPostID = Object.keys(req.body)
    console.log(Object.keys(req.body));

    // Load the document
  const doc = await Post.findOne({ _id: requestedPostID });

  const update = { likeCount: 5 };
  await doc.updateOne(update);

  const updatedDoc = await Post.findOne({ likeCount: 5 });
  updatedDoc.likeCount; 

});

HTML

<form class="" action="/" method="post">
    <div class="field is-grouped">
  <button type="submit" name="<%=post._id%>" class="card-footer-item"><i class="fas fa-thumbs-up"></i></button>
  <button type="submit" name="dislikeButton" class="card-footer-item"><i class="fas fa-thumbs-down"></i></button>
  </div>
  </form>

1 Ответ

0 голосов
/ 25 сентября 2019

Я не совсем понимаю вашу логику, но вижу пару проблем с вашим кодом Монго

  1. const requestedPostID = Object.keys(req.body) Это возвращает массив ключей, но не requestedPostID, поэтому вызапрашивают с неправильным _id

  2. следующий код неверен, updateOne принимает фильтр и обновляет

    const update = {likeCount: 5};

    await doc.updateOne (обновление);

  3. Где находится res.send()?Это, вероятно, причина, почему ваш пользовательский интерфейс застрял

...