使用Parse.com云代码处理错误的最佳方式是什么?我可以使用console.log和Firebug来查看Parse Cloud Code何时抛出错误,但我需要一些帮助来通知客户端出了问题。两边的一些示例代码确实很棒-- Cloud code和客户端javascript代码。
发布于 2014-11-23 17:51:22
我更喜欢这种方式-
在云代码上创建一个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条消息。
为了实现正确的日志记录,您必须根据类制定一些具有适当存储结构的自定义过程。
发布于 2014-05-17 19:58:22
Parse具有a section on Error Handling for Promises。
例如,在云代码中运行查询时
query.find().then(function(result){ ... },
function(error){
response.error("Error occurred: " + error.message);
}这将向客户端发送错误消息。
发布于 2014-08-02 06:16:20
作为一个实验,我用各种字符串/对象尝试了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"}https://stackoverflow.com/questions/20862418
复制相似问题