我在 debian 机器上全新安装 node(来自 git)时出现了一个奇怪的行为。 看来问题不在我的代码中,因为在 Windows 上一切正常。 我已经知道这不是网站图标问题。
这是我写的:
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server)
, url = require('url')
, qs = require('querystring')
, request = require('request')
, fs = require('fs')
其次是
server.listen(3000);
app.post('/postReload', function (req, res) {
var fullBody = '';
req.on('data', function(chunk) {
fullBody += chunk.toString();
if (fullBody.length > 1e6) {
req.connection.destroy();
}
});
req.on('end', function() {
out = qs.parse(fullBody);
vars = out.vars || '';
if(out.module && out.value){
// do the job
// console.log here is done twice !
}
res.writeHead(200, {'Content-Type': 'text/html'})
res.end();
});
});
当写成另一种方式时:
app.post('/postReload', function (req, res) {
// console.log here is done twice !
}
该问题影响所有浏览器,一周的测试并没有解决任何问题。
这里有人有想法吗?
双重操作发生在 curl 上,或通过浏览器访问。
最佳答案
谢谢赫克托·科雷亚。
这就是我声明 socket.io 的方式...... 我的新简单代码是:
var express = require('express')
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);
app.get('/', function (req, res) {
console.log('Only one time !!!')
res.end();
})
我现在继续点头。
关于node.js 响应两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12910887/