没有返回响应时,nodejs或expressjs重复路由调用

fan*_*ats 5 javascript node.js express

我正在使用expressjs。我的问题是,如果由于某种原因我未提供响应,则会再次调用路由。在Firebug中,请求的状态将为“待处理”。最终,在第二次调用路由后,我得到了响应ERR_EMPTY_RESPONSE

这是一个简单的测试:

// main.html
<html>
<body>
    <span>test</span>
</body>
</html>
<script>
    $.get("/test");
</script>

// app.js
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));


app.get('/test', function(req, res) {
    console.log("I'm called");
});

http.listen(3000, function() {
    console.log('Express started');
});
Run Code Online (Sandbox Code Playgroud)

您会I'm called在到达路线时看到,然后在大约15到20秒后再次看到。

看来Express或Node正在某种程度上导致路由再次运行。为什么会这样,如何预防呢?

编辑:做一个简单的测试,演示问题。

小智 -2

// main.html
<html>
<body>
    <span>test</span>
</body>
</html>
<script>
    $.get("/test");
</script>

// app.js
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));


app.get('/test', function(req, res) {
    res.send("I'm called"); // you have to res.send() method 
});

http.listen(3000, function() {
    console.log('Express started');
});
Run Code Online (Sandbox Code Playgroud)