nodejs获取请求回调多次命中

时间:2015-09-18 08:33:01

标签: javascript node.js get

我遇到问题,我的请求处理程序在一定时间间隔后多次调用。

在下面的示例中,如果我调用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.');
});

请帮忙。

感谢。

1 个答案:

答案 0 :(得分:2)

我用chrome测试过,现在我明白你的意思了。 等待120秒后,浏览器关闭连接并再次尝试。

这就是为什么你多次看到它,请求永远不会完成,因为它是900秒。

如果您尝试curl或类似的东西,它将等待900秒,您将只看到一个电话。