推荐的ember.js错误报告方式

5
这是ember.js社区关于报告Ember应用程序崩溃的建议?我正在寻找类似于Rails中exception_notifier gem的东西,以便在用户遇到错误时通知我。
这个Stack Overflow post推荐了一些通用的JavaScript错误处理解决方案,包括:
- 自己处理window.onerror - 使用托管服务来处理window.onerror,例如Airbrake.ioMuscula 我希望有一种Mixin可以提供所有这些错误处理代码,并提供更丰富的错误消息(例如发生错误时的当前路由等)。这是否已经存在?如果没有,人们如何解决这个问题?
1个回答

5
任何像Rails gem这样的错误报告都会依赖于某种服务器后端来处理错误,例如向管理员发送电子邮件等。Rails专门为此类事情提供了整个gem应该是有意义的,因为Rails将拥有整个堆栈跟踪、会话和各种方便(/必要)进行调试的其他变量,但对于前端应用程序(例如Ember),所有的错误信息都在客户端上,所以后端逻辑所做的就是公开一个API,让您的Ember应用程序可以与之通信,将您从应用程序发送给它的任何信息转发并发送到您的电子邮件或您想要执行的任何操作。
为了在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属性,其中包含堆栈跟踪信息,您可以将其与其他应用特定的状态一起发送到服务器上。不过,您可能希望保持简单,以避免引起其他错误并最终陷入疯狂的错误循环。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接