【发布时间】:2017-06-03 20:41:41
【问题描述】:
我正在尝试使用 Node JS(带 Express)和 JQuery AJAX 从 Mongo DB(在本例中为猫鼬)删除数据。
因此,附近有带有数据的复选框(界面)。当我选中一个或多个这些复选框,然后按提交时,我希望将它们从数据库(Mongo DB)中删除。
因此,我尝试使用 DELETE 请求,从 AJAX 获取数据,然后将其从数据库中删除(使用 Model.remove() ),但只要我想获取 req.params (为了从数据库中删除项目),我只得到'未定义'。我认为我的 Ajax 有问题,但不确定到底是什么。
快递
app.delete('/index', function(req,res){
console.log("req body: " + req.body); // Undefined?
console.log(req.params.del); // Undefined as well
console.log(req.params.data); // Undefined as well
Blog.remove({item: req.params.del}, function(err, data){
if (err) throw err;
res.json(data);
});
});
AJAX
$('#deleteAcc').on('click', function(){
//var item = $(this).text().replace(/ /g, "-");
var item = $(".checkbox input:checked").parent();
item.remove();
$.ajax({
type: 'DELETE',
url: '/index',
del: item,
success: function(data){
//do something with the data via front-end framework
location.reload();
}
});
});
HTML
<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Simple blogging website</title>
<script
src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
crossorigin="anonymous"></script>
<link href="/assets/styles.css" rel="stylesheet" type="text/css" />
<script src="/assets/appAJAX.js"></script>
</head>
<body>
<h1 align="center" size="40px">Welcome to blog!</h1>
<h2 align="center" size="36px">Best UX/UI Website ever!</h2>
<form style="text-align: center;">
<input style="width: 400px; height: 125px;" type="text" name="inputText" placeholder="Piss someone off..." required/>
<button type="submit">Submit post</button>
</form>
<br>
<div class="control-group">
<% for (var i = 0; i < posts.length; i++) { %>
<label class="checkbox">
<input type="checkbox" /><%= posts[i].item %>
</label>
<% } %>
</div>
<div class="btn">
<button type="button" id="deleteAcc">Delete</button>
</div>
</body>
</html>
【问题讨论】:
-
你有没有尝试使用 sintaxe
data: {del: item}而不是del: item? -
@ElmerDantas 数据库数据没有任何反应。它首先删除,但是当我刷新网页时,它保持不变。
-
您缺少一些 html 详细信息确实会发出 ajax 请求...您没有将值传递给服务器...因此,您会变得未定义...我'我在工作,但我正在尝试编写一些代码来帮助你。
标签: jquery ajax node.js mongodb mongoose