报告Ember app崩溃的ember.js社区建议是什么?我在Rails中寻找等效的exception_notifier gem,以便在用户遇到错误时通知我。
此Stack Overflow post推荐了一般的javascript错误处理解决方案,包括:
window.onerror
window.onerror
的托管服务
我希望有某种Mixin可以为您提供所有这些错误处理代码,并提供更丰富的错误消息(例如发生错误时的当前路由等)。这还存在吗?如果没有,人们在做什么来解决这个问题?
答案 0 :(得分:5)
任何类似Rails gem的错误报告都将依赖于某种服务器后端来处理错误,例如通过电子邮件发送管理员等等.Rails有一个专门用于此类事情的整个gem是有道理的,因为Rails将拥有整个堆栈跟踪,会话以及方便(/必要)调试问题的各种其他变量,但对于前端应用程序(例如Ember),所有错误信息都在客户端,因此所有后端逻辑都会公开一个你的Ember应用程序可以与之交谈的API,它会转发你从应用程序发送给它的任何信息并将其发送到你的电子邮件,或者你想用它做什么。
要在Ember中执行此操作,您可以指定Ember.onerror
功能:
Ember.onerror = function(error) {
caught = error;
Em.$.ajax('/report-error', 'POST', {
stack: error.stack,
otherInformation: 'whatever app state you want to provide'
});
};
这会收到抛出的JavaScript Error
对象,该对象可能包含也可能没有包含堆栈跟踪的非标准stack
属性,您可以在任何其他应用程序中将其发送到服务器你要发送的特定状态,虽然你可能想保持简单,这样你就不会引起其他错误,并最终陷入疯狂的错误循环。