2017-01-16 5 views
0

kafka-nodeを使用してKakfaに接続するNode JSアプリケーションを使用しています。私はいくつかの例外をキャッチしているのは、カフカに接続する際にエラーがあることです。ここにコードがあります。送信後にヘッダーを設定できません。これを避ける最善の方法は何ですか?ヘッダーを送信後に設定することはできません。それを避ける方法は?

// Some processing goes above 
producer.on('error', function(err){ 
    console.log(err); 
    res.status(500).send("Oh uh, something went wrong"); 
}) 
res.end(); 

エラーループの後にコードが続行されていることがわかりました。どのように私はエラーハンドラで送信を削除せずにこの状況を回避することができます。

+0

を削除。しかし、通常、応答を送信した後に応答を設定しようとすると、エラーが発生します。 – Dnyanesh

+0

コードがエラーハンドラ関数に入ると、私はsendをしています。私はこれが接続が終わるところであり、ヘッダーを設定すると思います。それがループから外れているとき、私はres.endをやっています。問題がどこにあるのかもしれません。私が間違っているなら私を訂正してください! –

答えて

0

実際にあなたの問題はyour'eが急行からres.sendを使用していることである、とres.sendが自動的なぜyour'eは、そのエラーを取得しているres.end();を行い、私はエラーを取得していない午前共有コードに基づいてres.end()

+0

そうです、それは本当です。しかし、エラーハンドラが呼び出されなかった場合はどうなりますか?その場合、res.endを呼び出します! res.sendが既に呼び出されている場合、res.endを呼び出さないようにする方法はありますか? –

+0

ステータスを設定して送信する際にエラーが発生した場合は、ここで問題が表示されません。エラーがなければ何が起きるかは不明であるので、コードの多くを見ると役立ちます。 Set header errorは、すでに送信された応答を送信しようとしていることを意味します。 –

関連する問題