我的删除控制器和AJAX查询在数据中传递意外结果。
我的AJAX请求中有以下内容:
var endpoint = '/api/places/'+$(this).attr('id');
$.ajax({
method: 'DELETE',
url: endpoint,
dataType:"json",
data: $(this).serializeArray(),
success: deletePlace,
error: handleError
});
其中endpoint是我的控制器中的有效URL和相同的URL,如下所示:
app.delete('/api/places/:id', function deletePlace(req, res) {
// remove place
db.Place.remove({ _id: req.params.id }, function(err, removePlace){
if (err) { throw (err) };
res.json(removePlace);
});
传递到deletePlace的数据是“Object {ok:1,n:1}”,当我希望它是被删除的Place的JSON时。请原谅我的新手,但我一直在为此辩解。在这里搜了这么多帖子但仍然找不到答案。
答案 0 :(得分:0)
只有.remove
不会返回已删除的文档。
所以您必须使用.findByIdAndRemove
方法。
请仔细阅读api:http://mongoosejs.com/docs/api.html#model_Model.findByIdAndRemove
以下是修复:
app.delete('/api/places/:id', function deletePlace(req, res) {
// remove place
db
.Place
.findByIdAndRemove(req.params.id,
function(error, deletedDocument) {
if (error) {
return
res
.status(500)
.send({
success: false,
error: error,
data: {}
});
}
res
.send({
success: true,
data: deletedDocument
});
});
});