Parse platform 使用Parse.com云代码和javascript API处理错误

Parse platform 使用Parse.com云代码和javascript API处理错误,parse-platform,Parse Platform,使用Parse.com云代码处理错误的最佳方法是什么。我可以使用console.log和Firebug来查看解析云代码何时抛出错误,但我需要一些帮助,以了解如何通知客户端出了问题。双方的一些示例代码将非常棒——云代码和客户端javascript代码 Parse已经完成了 例如,在云代码中运行查询时 query.find().then(function(result){ ... }, function(error){ response.error("Error occurre

使用Parse.com云代码处理错误的最佳方法是什么。我可以使用console.log和Firebug来查看解析云代码何时抛出错误,但我需要一些帮助,以了解如何通知客户端出了问题。双方的一些示例代码将非常棒——云代码和客户端javascript代码

Parse已经完成了

例如,在云代码中运行查询时

query.find().then(function(result){ ... }, 
   function(error){
       response.error("Error occurred: " + error.message);
   }

这将向客户端发送错误消息

作为一个实验,我尝试了
response.error
和各种字符串/对象,下面是每个字符串/对象返回的内容(命令显示了客户端的返回值)

本质上,它总是返回代码141,而您只能返回字符串。我很惊讶从异常返回的
{}
传递众所周知的
err
对象,我猜这是出于安全原因。我不明白的是为什么您不能在服务器上
console.log(err)
,因为这在试图弄清楚发生了什么时给我带来了很多困惑。基本上,您总是需要在console.log语句中执行
err.message
,以了解到底发生了什么

response.error("Some String of text") // --> {code: 141, message: "Some String of text"}
response.error( new Error("My Msg") ) // -->  {code: 141, message: "{}"}

try {
    var x = asdf.blah;
}catch(err) {
    return response.error(err.message); // -->  {code: 141, message: "asdf is not defined"}
}

response.error( err );  // -->  {code: 141, message: "{}"}
response.error( Parse.Error(Parse.Error.VALIDATION_ERROR, "My Text") ); // --> {code: 141, message: "An error has occurred"}

我喜欢这样-

在云代码上创建一个ErrorHandler.JS文件-

exports.sendError = function(response, message, data) {
    console.log("Message - " +  message + " Data - " + JSON.stringify(data)); // To print LOG on Cloud Code
    // Moreover you can use any of - "console.error/warn" - as mentioned - https://parse.com/docs/cloud_code_guide#logging
    response.error({
        status      : false, // Indicates EXECUTION STATUS - I am using "successHandler" also & using STATUS as "true" 
        message     : message, // Refers to Error Message
        data        : data || {} // Error Object or your customized Object
    });
}
&客户端如果需要,您可以打印所有数据,也可以向用户显示警报消息

此外,出于开发目的,最好同时检查服务器端和客户端日志,因为解析云代码只在日志中存储最后100条消息


&为了实现正确的日志记录,您必须使用适当的类存储结构创建一些自定义过程。

现在,如果调用response.error(代码,消息),您可以返回与141不同的代码。