1

RequireJSとNodeを使用してプロジェクトを構築し、サーバー側とクライアント側の両方でモジュールを再利用しています。これまでのところかなりうまくいっています(うまくいくためのいくつかの小さなねじれ)。

問題は、遅延コールバック内のエラーがノードコンソールに(またはその他の方法で)表示されないことであるように思われます。デバッグが非常に困難になります。

asdasdasd(); // Throws error, function is undefined, as intended
this.loadOrganization(organization_key, true).then(function(org) {
    asdasdasd(); // No error anywhere, script just stops executing
});

loadOrganizationは遅延オブジェクトを返し、コールバックは正常に呼び出されます-ただし、未定義に関連するエラーメッセージは表示されません(一般的な構文エラーは、モジュールの評価時にノードによって報告されます)。

jsdomとjqueryを使用して、サーバー側でブラウザーのコンテンツをブートストラップします。次に、jsdonからほとんどのメソッドにjqueryを渡します-したがって、loadOrganizationに使用される遅延オブジェクトは、jsdomを介したjQueryからのオブジェクトです。ただし、使用される遅延をnpmでインストールされたjqueryから1つに変更しても、違いはありません。

エラーが出力されていない場合、デバッグは非常に困難です。

4

1 に答える 1

1

それを理解したのは、サーバーサイドのBackbone.Sync実装でのワイルドなtry/catchステートメントでした。つまり、APIを通過するもの(ほとんどすべてのもの)は、エラーをBackbone.Syncエラーコールバックに渡すtry / catchによってキャッチされ、二度と聞かれることはありませんでした。

だから物語の道徳; エラーが出力されない場合は、コードでTry/Catchesを確認してください。

于 2012-05-13T16:08:42.680 に答える