2016-09-24 17 views
1

我的刪除控制器和AJAX查詢傳遞意外的數據結果。Ajax DELETE查詢返回意想不到的對象

我在我的AJAX請求如下:

var endpoint = '/api/places/'+$(this).attr('id'); $.ajax({ method: 'DELETE', url: endpoint, dataType:"json", data: $(this).serializeArray(), success: deletePlace, error: handleError });

其中端點是有效的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

'$(本).serializeArray()'也許應該是'$(本).serialize()'? – Andreas

回答

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 
      }); 
     }); 
}); 
+1

你是最棒的。我想我打開了所有錯誤的文件.. –