2014-10-05 76 views
0

我有一个云功能如何处理来自parse.com云回调的错误对象?

Parse.Cloud.define("register", function (request, response) { 
    var params = request.params; 

    var pass1 = params.pass1; 
    var pass2 = params.pass2; 

    if (pass1.length < 8 || pass2.length < 8) { 
     response.error("Your password is too short!"); 
     return; 
    } 
}); 

,并调用此函数云的使用javascript:

function register(){ 
    Parse.Cloud.run("register", { pass1 : "abc", pass2 : "abc", { 
     error: function(error){ 
      alert("Error! --> error msg: " + error.message); 
     }, 
     success: function(){ 
      alert("Success !"); 
     } 
    }); 
} 

问题是我无法读取的错误信息!我得到未定义的对象。

错误! - >错误信息:未定义

回答

0

当你使用“response.error(‘’)”返回错误值,它将返回如下回应:

{"code":141,"error":"Your password is too short!"} 

所以,你应该得到的错误.error而不是error.message。

function register(){ 
    Parse.Cloud.run("register", { pass1 : "abc", pass2 : "abc", { 
     error: function(error){ 
      alert("Error! --> error msg: " + error.error); 
     }, 
     success: function(){ 
      alert("Success !"); 
     } 
    }); 
} 
+0

我也注意到,iOS SDK中有此错误的对象,而不是在JavaScript: {“代码”:141,“错误”:“您的密码是太短了! “}。它在iOS中也有一个originalError参数。 – 2016-01-09 20:18:04

0

error.message一次不适用于我,但它只是我的代码中的一个错误。稍后的error.message按预期工作。 https://www.parse.com/questions/parsepromiseerror-not-printing-the-error-message-or-code

如果使用:response.error(“Your password is too short!”);然后你应该期望:alert(“Error! - > error msg:”+ error.message);

注意:对于您的特定问题,您的云代码可能未达到if语句。

0

我从beforeSave Cloud Code函数调用response.error()时发现,返回的错误实际上是一个数组。所以访问错误消息,使用

error[0].message 
相关问题