5

Ember アプリのクラッシュを報告するための ember.js コミュニティの推奨事項は何ですか? Rails の exception_notifier gem に相当するものを探しているので、ユーザーにエラーが発生した場合に通知を受け取ることができます。

このスタック オーバーフローの投稿では、次のような一般的な JavaScript エラー処理ソリューションを推奨しています。

  • window.onerror自分で処理する
  • Airbrake.ioMusculawindow.onerrorなどのホストされたサービスを使用する

このすべてのエラー処理コードを提供し、より豊富なエラー メッセージ (エラーが発生したときの現在のルートなど) を提供する何らかの種類の Mixin があることを願っています。これはまだ存在しますか?そうでない場合、人々はこの問題を解決するために何をしていますか?

4

1 に答える 1

5

Rails gem のようなエラー報告は、管理者にメールを送信するなど、何らかのサーバー バックエンドに依存してエラーを処理します。スタック トレース全体、セッション、および問題のデバッグに便利な (/必要な) その他のあらゆる種類の変数を取得しますが、フロントエンド アプリ (Ember など) の場合、すべてのエラー情報はクライアント側にあります。したがって、バックエンド ロジックが行うことは、Ember アプリが通信できる API を公開することだけです。この API は、アプリから Ember アプリに送信した情報を転送し、メールに送信したり、それを使ってやりたいことを何でも送信したりします。

Ember.onerrorEmber でこれを行うには、次の関数を指定できます。

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おそらく、他のエラーを引き起こして地獄からのクレイジーなエラーループに陥らないように、シンプルに保ちたいと思うでしょう.

于 2013-01-16T00:19:48.590 に答える