J'utilise l'application Node JS qui se connecte à Kakfa en utilisant kafka-node. J'attrape quelques exceptions s'il y a des erreurs dans la connexion à kafka. Voici le code. Je ne peux pas définir les en-têtes après leur envoi. Quel est le meilleur moyen d'éviter cela? Je suis assez sûr que c'est parce que le code continue après la boucle d'erreur. Comment puis-je éviter cette situation sans supprimer le gestionnaire d'erreur d'envoi.Impossible de définir les en-têtes après leur envoi. Comment l'éviter?
Répondre
vraiment votre problème est que your'e à l'aide de res.send express et res.send fait automatiquement res.end();
c'est pourquoi your'e obtenir cette erreur, retirez res.end()
Oui, c'est vrai seulement. Mais que faire si le gestionnaire d'erreur n'a jamais appelé? Dans ce cas, il va appeler res.end! Alors, est-il possible d'éviter d'appeler res.end si res.send est déjà appelé? –
Je ne vois pas le problème ici, si vous avez une erreur, définissez le statut et envoyez-le. Il serait utile de voir plus de votre code car on ne sait pas ce qui se passe s'il n'y a pas d'erreur. Définir une erreur d'en-tête signifie que vous essayez d'envoyer une réponse qui a déjà été envoyée. –
Basé sur le code partagé, je ne reçois pas d'erreur . Mais généralement erreur se produit lorsque vous essayez de définir la réponse après l'envoi de la réponse. – Dnyanesh
Lorsque le code entre dans la fonction de gestionnaire d'erreur, je fais envoyer. Je suppose que c'est là que la connexion se termine, et définit les en-têtes. Quand il est hors de la boucle, encore une fois, je fais res.end. Peut être ceci où le problème est. Corrige moi si je me trompe! –