【问题标题】:Site stuck loading after using findOne() and updateOne()使用 findOne() 和 updateOne() 后网站卡住了加载
【发布时间】:2020-01-25 23:07:10
【问题描述】:

我的网站在单击“喜欢”按钮后挂起。我的 mongo db 更新正常,如果我在单击后重定向站点以加载新页面,那很好。有没有办法在不重新加载页面的情况下做到这一点?

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>

【问题讨论】:

    标签: node.js mongodb mongoose ejs


    【解决方案1】:

    我没有完全理解你的逻辑,但我发现你的 Mongo 代码存在一些问题

    1. const requestedPostID = Object.keys(req.body) 这会返回键数组,但不会返回 requestedPostID,因此您查询的是错误的 _id

    2. 以下代码错误,updateOne 过滤并更新

      const update = { likeCount: 5 };

      等待 doc.updateOne(update);

    3. res.send() 在哪里?这可能是您的 UI 卡住的原因

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 2013-04-12
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多