我正在尝试连接超时模块。
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();
}
但是我总是回到浏览器中(我认为超时会阻止它)。有什么我没到这里来的吗?
问题是你的 for 循环在一秒钟内执行。试试这个:
app.get('/timeout', function (req, res) {
setTimeout(function() {
res.send('d');
}, 5000);
});
在此示例中,路由在执行 5 秒超时函数之前不会返回响应。但是,连接超时中间件将在此之前停止执行。