我正在构建一个node.js
网络应用,并有一个查询mongo
数据库的删除功能,删除document
,然后将用户发送到另一个页面。
但是,在调用该函数后,即使删除document
并且我可以手动加载该页面,也不会重新加载新页面。相反,现有的页面就在那里。
以下是我在函数完成后从终端看到的GET
消息:
GET /students 200 9ms - 5.64kb
删除功能:
remove: function(req, res) {
function(err, result) {
Models.Student.remove({myid:{$regex:req.params.students_id}},function(err,removed) {
if (err){
throw err;
}
else{
res.send('/students');
}
})
},
呈现新页面的功能:
index: function(req, res) {
var viewModel = {
student: [],
};
Models.Student.find({},function(err, student) {
if (err) { throw err; }
if (student) {
viewModel.student=student;
res.render('../views/students.handlebars',viewModel);
}
else {
res.redirect('/');
}
});
},
Jquery脚本:
$(function(){
$('#btn-delete').on('click', function(event) {
event.preventDefault();
var $this = $(this);
var remove = confirm('Are you sure you want to delete this student?');
if (remove) {
var studentid = $(this).data('id');
$.ajax({url: '/students/'+studentid, type: 'DELETE'}).done(function(result) {
if (result) {
$.ajax(
{type: 'GET',
url:'/students',
success: function(){
console.log('success');
}
}
)
}
else{
console.log('Unable to delete');
}
});
}
});
});
路由:
app.get('/students',students.index);
我非常感谢给予的任何帮助。
答案 0 :(得分:0)
在res.send()之后,调用return next ();
没有参数来触发下一个中间件,它将与/ students字符串一起发送200状态。只有这样才能触发ajax中的done()解析器。
答案 1 :(得分:0)
我设法在done()之后添加componentHandler.upgradeDom()
命令来加载新页面:
window
});