ember.js的推荐错误报告

jef*_*lab 5 ember.js

什么是报告Ember app崩溃的ember.js社区推荐?我正在寻找Rails中的exception_notifier gem的等价物,以便在用户遇到错误时通知我.

此Stack Overflow帖子推荐了通用的javascript错误处理解决方案,包括:

  • 处理window.onerror你自己
  • 使用window.onerror为您处理的托管服务,如Airbrake.io或Muscula

我希望有某种Mixin可以为您提供所有这些错误处理代码,并提供更丰富的错误消息(例如发生错误时的当前路由等).这还存在吗?如果没有,人们在做什么来解决这个问题?

Ale*_*eer 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'
  });
};
Run Code Online (Sandbox Code Playgroud)

这会接收Error抛出的JavaScript 对象,该对象可能包含也可能没有stack包含堆栈跟踪的非标准属性,您可以在要发送的任何其他特定于应用程序的状态中将其发送到服务器,尽管您已经可能想要保持简单,这样你就不会引起其他错误,并最终陷入疯狂的错误循环.