2014-03-07 31 views
1

我在流星中遇到了一個奇怪的錯誤。它允許我更新計數,但當我嘗試反轉計數時,它不會更新。如何在MeteorJs中顯示MongoDB錯誤?

Template.listItem.events({ 
'click .remove': function(e, template) { 
    e.preventDefault(); 
    ListItems.remove(this._id); 
    //Router.go('listPage', {_id: template.data._id}); 
}, 
'click .listItem': function(e, template) { 
    e.preventDefault(); 
    var item = ListItems.findOne(this._id); 
    ListItems.update(this._id, {$set: { picked: true }}); 
    Items.update(item.itemId, {$inc: {pickedCount: 1}}); 
}, 
'click .picked': function(e, template) { 
    e.preventDefault(); 
    var item = ListItems.findOne(this._id); 
    console.log(item.itemId); 
    ListItems.update(this._id, {$set: { picked: false }}); 
    Items.update({_id: item.itemId}, {$inc: {pickedCount: -1}}); 
} 
}); 

我正嘗試恢復採樣計數。我讀過的所有內容都表明這應該起作用。如何從MongoDB顯示錯誤?這是在Mongo中遞減字段的可接受語法嗎?

+0

你能粘貼_strange error_你在這裏看到嗎?這將有助於診斷問題。 –

回答

0

大多數Meteor.call函數(或哪個Collection.update是其中之一),將最後一個參數作爲回調。來自docs

回調功能可選。如果存在,則用錯誤對象調用 作爲第一個參數,如果沒有錯誤,則將受影響文檔的數量作爲第二個參數 。

因此,你可以寫你到update電話爲:

Items.update({_id: item.itemId}, {$inc: {pickedCount: -1}}, function (err) { 
    console.log("Error = ", err); 
}); 

然而,在服務器控制檯上的錯誤很可能是你的情況提供更多的信息。

+0

此錯誤以「錯誤=未定義」響應。當我觀看顯示pickCount的項目時,只要我點擊尚未挑選的項目,計數就會增加。如果我點擊一個項目將其還原爲未被選中,它不會減少項目pickCount。 – Chris