如何处理来自parse.com云回调的错误对象?
问题描述:
我有一个云功能如何处理来自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 !");
}
});
}
问题是我无法读取的错误信息!我得到未定义的对象。
错误! - >错误信息:未定义
答
当你使用“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 !");
}
});
}
答
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语句。
答
我从beforeSave Cloud Code函数调用response.error()时发现,返回的错误实际上是一个数组。所以访问错误消息,使用
error[0].message
我也注意到,iOS SDK中有此错误的对象,而不是在JavaScript: {“代码”:141,“错误”:“您的密码是太短了! “}。它在iOS中也有一个originalError参数。 – 2016-01-09 20:18:04