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) { ... }
})
그러나 그때 나는 신체의 오류 메시지를 얻을 수 없을 것 같습니다.
어떻게 오류 메시지가 나타나면 의미있는 로그를 기록하고 처리를 중단 할 수 있습니까? response
이벤트에 전달되는 인수뿐만 아니라 읽을 수있는 스트림을하기 때문에
우우는, 한때 명백한 관찰! 고마워. – Bittrance