Je fais une requête HTTP en utilisant https://github.com/request/request et je veux recevoir JSON. La réponse sera très importante, donc je veux utiliser une approche de flux pour traiter la réponse. Cependant, l'API que j'appelle retourne 'text/plain' pour l'état> = 400, ce qui signifie que mon JSONStream va bork. Code:Statut de traitement> = 400 dans streamed node.js request Client 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);
Erreur:
Invalid JSON (Unexpected "I" at position 0 in state STOP)
(« A » comme dans « Erreur interne du serveur ».) Il semble demande n'émet pas d'événements « d'erreur » pour les demandes qui complète ainsi l'ajout de req.on('error', (err) => ...)
ne le fait pas déclencheur. Je pourrais ajouter
req.on('response', function(res) {
if(res.statusCode >= 400) { ... }
})
Mais alors je ne semble pas être en mesure d'obtenir le message d'erreur dans le corps.
Comment puis-je obtenir le message d'erreur, me connecter correctement et interrompre le traitement?
Ooo, une fois observé, si évident! THX. – Bittrance