mongoose删除文档时遇到的问题,
毕业设计遇到的问题
当我进行删除操作时
![D@I)7$2{7@P{_PZ[SC[5QC.png
打开F12查看网络请求时发现上面操作的ajax事件处于挂起状态,挂着挂着请求就失败了
![WUDCMI1O492IN@SSNN%Y{R.png
页面JS
//删除选中的老师
jqueryMap.$delTeacher.on('click',function(){
var ids = getSelectedIds(),params;
params = {
ids: ids
};
$.post('/delTeacher.json',params,function(data){
});
});
routes
app.route('/delTeacher.json')
.post(users.delTeacher);
controllers
exports.delTeacher = function (req,res,next){
var delIds = req.body.ids;
User.delTeacherById(delIds,function(data){
});
}
models
UserSchema.statics.delTeacherById = function (ids) {
var ObjectId = mongoose.Types.ObjectId;
for (var i = 0,len=ids.length; i < len; i++) {
this.remove({role: 2, _id:new ObjectId(ids[i])});
}
return null;
}
真不知道问题出在哪,忘大家指出错误出在哪?
7 回复
路由进来了么? 错误是啥?
删除的话, 我一般是这样做的。 var user = yield User.findOne({_id:id});
user.remove();
@21614306 没有报错,都已经执行到了我model中定义的方法,如第二张图片显示的那样,请求处于pending状态
刚刚查了mongoose的API,删除操作需要传入一个callback,删除操作才会执行。我传入个cb后,确实是删除了那条记录,但页面上的Ajax请求还是处于Pending状态
已经解决了。 只要在controller中的函数中加一句话
exports.delTeacher = function (req,res,next){
var delIds = req.body.ids;
User.delTeacherById(delIds,function(data){
res.json(data); //加上这一句话,就不会出现pending状态了
});
}
models
@harwinvoid 哈哈…这玩意都没撸,怎么响应啊
@fangker 哈哈。记住了