2016-03-10 19 views
3

此代碼試圖插入文檔中的某個值時,該方法storeUserinputs叫,但我得到的錯誤插入值

錯誤調用方法「storeUserInputs」:內部服務器錯誤[500]

我經歷過很多次,但找不到問題。我究竟做錯了什麼?謝謝。

storeUserInputs: function (doc) { 
    var activeTask = ActiveTaskCol.findOne({}, {fields: {action: 1}, sort: {createdAt: -1}, limit: 1}).action; 
    console.log(doc); 
    doc.forEach(function (obj) { 
     console.log(obj); 
     InputsCol.update({action: activeTask, name: obj[name]}, {$set: {value: obj[value]}}); 
    }); 
} 

上面的代碼控制檯記錄以下投擲錯誤

之前[{名稱: '板',值: '×大'}]
{名稱: '板',值: 'x large'}

回答

0

問題出在obj的字段被訪問的方式。它應該是obj["name"]obj.name而不是obj[name]

試試這個,

storeUserInputs: function (doc) { 
    var activeTask = ActiveTaskCol.findOne({}, {fields: {action: 1}, sort: {createdAt: -1}, limit: 1}).action; 
    console.log(doc); 
    doc.forEach(function (obj) { 
     console.log(obj); 
     InputsCol.update({action: activeTask, name: obj.name}, {$set: { value: obj.value }}); 
     // or InputsCol.update({action: activeTask, name: obj["name"]}, {$set: { value: obj["value"] }}); 
    }) 
} 

這個錯誤是因爲,你正在使用的不是在函數中定義namevalue變量。