2014-02-21 56 views
0

我試圖運行下面的代碼:解析更新行中的Node.js

exports.updateProfile = function(req, res) { 
    var Profile = Parse.Object.extend("Profile"); 
    var query = new Parse.Query(Profile); 
    query.equalTo("username", req.body.username); 
    query.first({ 
     success: function(Profile) { 
      Profile.save(null, { 
       success: function(profile) { 
        profile.set(req.body, { //It breaks here... 
         success: function(object) { 
          res.send({"error":"none"}); 
         }, 
         error: function (object, error) { 
          res.send({"error":"Error: " + error.code + " " + error.message}); 
         } 
        }); 
       }, 
       error: function (object, error) { 
        res.send({"error":"Error: " + error.code + " " + error.message}); 
       } 
      }); 
     }, 
     error: function (object, error) { 
      res.send({"error":"Error: " + error.code + " " + error.message}); 
     } 
    }); 
} 

然而,無論是成功還是錯誤方法被稱爲在「它打破了這裏」行。任何想法或更好的方法來使用Node.js更新Parse行?謝謝。

+0

是嵌套特意推出證明錯誤?如果沒有,你可能可以做一些重構。 –

+0

@Asad它如何重構? – Phil

+0

好吧,它看起來像我所有的錯誤回調是相同的,一開始。將它作爲名爲errorCallback的函數在頂部寫入,並且每次都引用它。函數errorCallback(){...}',然後:'error:errorCallback'。對不起,我無法幫助您解決實際問題,我對Node不是很熟悉。 –

回答

0
exports.updateProfile = function(req, res) { 
    var Profile = Parse.Object.extend("Profile"); 
    var query = new Parse.Query(Profile); 
    query.equalTo("username", req.body.username); 
    query.first().then(function(Profile){ 
     Profile.set("columnName", value);//value might be you are getting from req.body 
     Profile.save().then(function(saved){ 
      res.send({"error":"none"}); 
     }, function(error){ 
      res.send(error); 
     }); 
    }, function(error){ 
     res.send(error); 
    }); 
} 

這可能是你正在尋找的東西。嘗試這種方法,希望它會有所幫助。您正在保存一個尚未修改的對象,這可能是它沒有進入回調方法的原因。重構代碼以刪除無效的保存呼叫。

+0

仍似乎沒有工作或打錯誤的功能。 – Phil

+0

你可以在代碼中粘貼錯誤 – Triode

+0

這就是問題所在,沒有錯誤。它不輸出任何東西。 – Phil