2013-04-06 15 views
5

Express 3リクエストはどのように終了しますか? res.end()は処理を止めません。ExpressJSリクエストの終了

exports.home = function(req, res) { 
    res.end(); 
    console.log('Still going, going...'); 

答えて

6

returnが必要です。例えば、

exports.home = function(req, res) { 
    return res.end(); 
    console.log('I will never run...'); 

res.end()は、単純に完了し、クライアントへの応答をフラッシュします。しかし、他のアクションと同様に、JavaScriptが実行を停止するように指示するわけではありませんので、関数の中で明示的にreturnを使用する必要があります(実際には応答しないレスポンスをフラッシュした後に走りたい?...)。

+0

ああ、ほとんどそれがあった!私はres.send(500)の後にres.end()を返し、永遠にループしました.res.send(500)は私に必要なものを返しました。あなたの質問に答えるために、私は単に(APIフィードのための)いくつかの必要な変数が存在するかどうかをチェックしており、残りのコードを条件ループにカプセル化するのではなく、 – cyberwombat

関連する問題