2016-02-09 61 views
1

我試圖通過其ID刪除一個文件,我不斷收到以下錯誤:流星移除由ID錯誤文檔

Exception in Mongo write: TypeError: object is not a function 
I20160208-21:03:51.816(-8)?at packages/mongo/mongo_driver.js:322:1 
I20160208-21:03:51.816(-8)?at runWithEnvironment (packages/meteor/dynamics_nodejs.js:110:1) 

我有一個表單,用戶填寫,並提交的情況下,文檔ID被返回並存儲爲會話變量curID(某些其他會話變量也被設置,但與此無關)

在單獨的頁面上,有一個刪除按鈕。點擊後,會彈出確認框,如果確定,則會調用流星方法從集合中刪除文檔。所述curID會話變量被傳遞,從而所述方法知道要刪除的文件

這是處理刪除按鈕點擊的代碼:

"submit .delete-participant": function(event){ 
     // Prevent default browser form submit 
     event.preventDefault(); 

     if (confirm("Are you sure you want to delete this participant?")){ 
     Meteor.call("deleteParticipant", Session.get("curID"), function(err, id){ 
      if (err){ 
      alert(err); 
      } else { 
      Session.set("curID", ""); 
      Session.set("participantCreated", false); 
      } 
     }); 
     } 
    } 
    }); 

deleteParticipant方法剛剛找到1號文件具有匹配ID(從在curSub會話變量),並將其刪除:

Meteor.methods({ 
    deleteParticipant: function(id){ 
    Participants.remove({_id: id}, {justOne: true}) 
    } 
}); 

我可能忽視的東西非常基本在這裏,但我不知道哪個對象錯誤指的是...

+0

檢查服務器上「id」的類型。 – Tushar

+0

我在這裏發現3個問題,可能會導致問題,'1',每當服務器沒有任何'返回',客戶端回調將只有一個參數'錯誤'。 ''2.如果你用'_id'去掉,這意味着你只刪除了一個項目,你不需要寫'justOne:true'。 '3.'。最重要的是在刪除對象之前,服務器中的'console.log',不管你的'id'是否正確傳遞。 –

+0

我從來沒有見過Meteor使用的'justOne'參數。它沒有出現在文檔中。正如@FaysalAhmed所說,無論如何你都不需要它。 –

回答

0

謝謝,只是簡單的「1」也解決了我的問題。