2017-01-16 59 views
0

我正在使用使用kafka-node連接到Kakfa的Node JS應用程序。我遇到了一些例外情況,即連接到kafka時是否有任何錯誤。這是代碼。我收到它們發送後無法設置標題。避免這種情況的最好方法是什麼?發送後無法設置標題。如何避免它?

// 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

當代碼進入錯誤處理函數時,我正在發送。我想這是連接結束的地方,並設置標題。當它退出循環時,我再次做res.end。可能是問題出在哪裏。如我錯了請糾正我! –

回答

0

其實你的問題是傻冒使用res.send從快車,和res.send自動執行res.end();這就是爲什麼傻冒收到這個錯誤訊息,基於共享代碼,我沒有得到錯誤刪除res.end()

+0

是的,這只是真的。但是如果錯誤處理程序從未調用過呢?在這種情況下,它會打電話給res.end!那麼,如果res.send已經被調用,有沒有辦法避免調用res.end? –

+0

我在這裏看不到問題,如果您有錯誤,請設置狀態併發送。查看更多代碼會很有幫助,因爲不清楚如果沒有錯誤會發生什麼情況。 設置標題錯誤意味着您正嘗試發送已發送的回覆。 –

相關問題