我遇到问题,我的请求处理程序在一定时间间隔后多次调用。
在下面的示例中,如果我调用http://localhost:3000/test,那么它可以正常工作,但如果我调用http://localhost:3000,则会在一定的间隔时间后多次调用。有人请帮助我理解这项需要长时间和“获取”请求的任务的问题。
var express = require('express');
var url = require('url');
var http = require('http');
var app = express();
var server = http.createServer(app);
app.listen(3000);
console.log('App is listening on port: 3000');
app.get('/', function(req, res){
console.log("req url = "+ req.url);
setTimeout(function(){
console.log('working in settimeout');
res.writeHead(200, {'content-type': 'text/plain'});
res.end('This is simple response.');
}, 1000*15*60);
console.log('set timeout registered.');
});
app.get('/test', function(req, res){
console.log("req url = "+ req.url);
res.writeHead(200, {'content-type': 'text/plain'});
res.end('This is response for /test.');
});
请帮忙。
感谢。
答案 0 :(得分:2)
我用chrome测试过,现在我明白你的意思了。 等待120秒后,浏览器关闭连接并再次尝试。
这就是为什么你多次看到它,请求永远不会完成,因为它是900秒。
如果您尝试curl
或类似的东西,它将等待900秒,您将只看到一个电话。