自从1.6.x升级到meteor 1.8.0.2
以来,我注意到任何导致错误的方法调用都会在服务器控制台上显示为:
Exception while invoking method 'login' [object Object]
Exception while invoking method 'customMethodByMe' [object Object]
这既发生在我的Mac上,也发生在我的Galaxy上。
之前,已打印整个堆栈跟踪,但是此Object对象日志记录无法帮助我确定实际问题。到目前为止,我的解决方案是将方法实现包装在try catch语句中,该语句记录原始异常并将其重新抛出以使客户端知道。
Meteor.methods({
'customMethodByMe'() {
try {
return customMethodByMeImpl();
} catch (e) {
console.log(e)
throw e;
}
}
});
在这种情况下,由于错误是在软件包中的login
方法上,所以我无法更新它以打印出实际的问题。在客户端上,我遇到的所有错误都是服务器上存在500错误,因此也没有根本原因。
{"isClientSafe":true,"error":500,"reason":"Internal server error","message":"Internal server error [500]","errorType":"Meteor.Error"}
关于如何临时解决此问题的任何想法?我一直在寻找服务器级别的错误处理程序,但到目前为止没有发现任何问题。
谢谢
答案 0 :(得分:0)
我没有直接体验过,但是当我需要打印对象时,通常使用JSON.stringfy。
Meteor.methods({
'customMethodByMe'() {
try {
return customMethodByMeImpl();
} catch (e) {
console.log(JSON.stringify(e));
throw e;
}
}
});
这应该可以解决,以便您至少可以阅读错误日志。