gpt4 book ai didi

jquery - 使用 MongoDB、Node 和 Express 在 DELETE 请求后更新页面

转载 作者:太空宇宙 更新时间:2023-11-04 02:12:25 25 4
gpt4 key购买 nike

我正在构建一个 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 调用“删除”请求工作得很好,但我希望页面更新以反射(reflect)项目已从数据库中删除。

我也尝试过以下方法,但没有成功:

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' 的情况下都执行了此操作,但这也不起作用。

感谢您的考虑。

最佳答案

这取决于你的前端结构。如果您使用的是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)

关于jquery - 使用 MongoDB、Node 和 Express 在 DELETE 请求后更新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41558980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com