2014-02-21 26 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