2016-06-13 3 views
1

私はconnect-timeoutモジュールを試しています。強制的なブロック操作で、応答タイムアウトの問題が発生しました。

I've tried hitting a simple route from the browser 

var timeout = require('connect-timeout'); 

app.use(timeout('1s')); 
app.use(haltOnTimedout); 

app.get('/timeout', function (req, res) { 
    for (var i = 0; i < 1111211111; i++) {} 
    res.send('d') 
}) 
function haltOnTimedout(req, res, next){ 
    if (!req.timedout) next(); 
} 

しかし、私はいつもブラウザに戻っています(私はタイムアウトがそれを防ぐと思っていました)。私がここに来ていないものは何ですか?

答えて

0

問題は、forループが1秒以内に実行されることです。これを試してください:

app.get('/timeout', function (req, res) { 
    setTimeout(function() { 
    res.send('d'); 
    }, 5000); 
}); 

この例では、5秒のタイムアウト関数が実行されるまで、ルートは応答を返しません。ただし、connect-timeoutミドルウェアはその前に実行を停止します。

関連する問題