2016-05-24 12 views
4

JavaScriptに関して非常に不満な点は、外部モジュールでエラーが発生した場合、パスを開始したコードの行を教えてくれないことです。例えばJavaScript例外をもっと情報に役立てるにはどうすればよいですか?

Unhandled rejection RequestError: Error: socket hang up 
    at new RequestError (/../node_modules/request-promise/lib/errors.js:11:15) 
    at Request.RP$callback [as _callback] (/../node_modules/request-promise/lib/rp.js:60:32) 
    at self.callback (/../node_modules/request/request.js:199:22) 
    at Request.emit (events.js:95:17) 
    at Request.onRequestError (/../node_modules/request/request.js:821:8) 
    at ClientRequest.emit (events.js:95:17) 
    at Socket.socketOnEnd (http.js:1569:9) 
    at Socket.g (events.js:180:16) 
    at Socket.emit (events.js:117:20) 
    at _stream_readable.js:944:16 
    at process._tickDomainCallback (node.js:492:13) 

何実際には、このスタックトレースに便利ですか?例外が発生した最後の "non node_module"呼び出しを出力する方法はありますか?

+0

私はあなたの欲求不満を理解していますが、実際の質問は何ですか? Btw、コールバック付きの楽しいことは、外部システムからのどんなメッセージからでも開始できるということです。私は、ノードが実際にコールバックを誰に/どの行が実際に置いているかを知っているかどうかわからない。 – GolezTrol

+0

質問を明確にしました。ある時点で、実行は自分のコードから第三者のコードに移ります。ノードがそのパスを追跡できないのはなぜですか? –

+0

この場合、あなたのコードから第三者コードに移動しないのはどうですか?あなたのコードは、リクエストを聞いてサーバを起動しているかもしれませんが、あなたが聞いているハンドラをトリガするまで、あなたのコードには達していません。 –

答えて

0

「非同期スタックトレース」を提供するいくつかのノードモジュールがあります。これらは、Chrome開発ツールのチェックボックス(「ソース」の下にある)に同様の機能を提供するようです。私は実際にはそれらのいずれかで実際に作業したことはありません、そして、私はそれらが本番システムのために必ずしも意味をなさないと思いますが、それらは開発環境にとって有用かもしれません。

Google検索では、いくつかの可能なモジュール(例:async-stacktrace)が表示されます。

関連する問題