【问题标题】:Updating Page After DELETE Request Using MongoDB, Node and Express使用 MongoDB、Node 和 Express 在 DELETE 请求后更新页面
【发布时间】:2017-05-24 08:40:06
【问题描述】:

我正在构建一个 Node/Mongo/Express/Jquery 应用程序,该应用程序可以正确处理 DELETE 请求,但之后不会刷新页面以更新其内容。

我尝试了为this question 发布的答案,但在包含之后

req.method = 'GET'

router.delete(url, callback) 代码块中,我没有得到不同的结果。

代码:

router.delete('/formula-list/:id', function(req, res){
  var db = req.db;
  var collection = db.get('formulas');
  var id = req.params.id;
  var query = { "_id": id };
  collection.findOneAndDelete(query);
  req.method = 'GET';
  res.redirect('/formula-list');
});

再次,“删除”请求使用 jQuery AJAX 调用可以正常工作,但我希望页面更新以反映已从数据库中删除项目。

我也尝试了以下方法,但无济于事:

router.delete('/formula-list/:id', function(req, res){
  var db = req.db;
  var collection = db.get('formulas');
  var id = req.params.id;
  var query = { "_id": id };
  collection.findOneAndDelete(query);
  collection.find({}, {}, function(e, docs){
  res.render('formula-list', {
    formulas: docs,
    title: 'Your Formulas',
    description: `List of saved user formulas from the formula generator`,
    ID: 'formula-list',
    keywords: 'formula generator, health kismet, nutraceutical formula  builder'
    });
  });
});

这里的想法是,一旦我从数据库中删除项目,我就会将集合重新发送到要重新显示的 URL。我在添加和不添加 req.method = 'GET' 的情况下都这样做了,但这也不起作用。

感谢您的考虑。

【问题讨论】:

    标签: jquery node.js mongodb express


    【解决方案1】:

    这取决于您的前端结构。如果您使用的是 Vue.js 或 React.js 等单页应用程序,您可以做的是在 ajax 被解析后,调用 get 查询再次从数据库中获取所有数据。

    $ajax.delete('/formula-list/:id')
      .then(res => {
        $ajax.get('/formula-list')
         .then(res => {
           this.tableData = res.data
          })
       })
    

    如果你在做 SSR,也许你可以从前端尝试window.location.reload(true)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 2020-06-15
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      相关资源
      最近更新 更多