node.js 响应两次

标签 node.js debian

我在 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/

相关文章:

r - 如何每天运行两次 R 脚本?

c++ - 我可以使用 CLang 和 libstdc++ (emmintrin.h)

linux - 创建 iso,可使用命令 'dd' 安装

c++ - 将数据从一个应用程序单向发送到另一个应用程序的最佳实践

javascript - Npm 不创建 Gruntfile.js

node.js - 在Webfaction上设置Node.js

linux - 如何为 Debian 下载/安装预编译的 Subversion 二进制文件

node.js - Websocket 无法在 Google App Engine 上运行

css - Ejs - 我们如何将鼠标悬停在 ejs 文件中?

python - crypt.crypt 引发 OSError : Invalid Argument