https://github.com/request/requestを使用してHTTPリクエストを行い、JSONを受け取りたいとします。レスポンスは大きくなりますので、私はレスポンスを処理するストリームアプローチを使用します。しかし、私が呼び出すAPIは、status> = 400のために 'text/plain'を返します。つまり、JSONStreamはborkになります。コード:ストリーム化されたnode.jsリクエストの処理ステータス=> 400 HTTPクライアント
req = request.get({url: data_url});
req.pipe(require('JSONStream').parse([true]))
.pipe(require('stream-batch')({maxItems: 1000}))
.on('data', callback)
.on('end', done);
エラー:
Invalid JSON (Unexpected "I" at position 0 in state STOP)
(「A」、「内部サーバーエラー」のように。)要求がreq.on('error', (err) => ...)
にはないので、追加完了の要求のための「エラー」イベントを発していないようです引き金。私は追加することができます
req.on('response', function(res) {
if(res.statusCode >= 400) { ... }
})
しかし、私は体内のエラーメッセージを得ることができないようです。
どうすればエラーメッセージが表示され、意味のあるログに記録され、処理が中断されますか?
おお、それほど明白!どうも。 – Bittrance