当前位置 : 主页 > 网页制作 > Nodejs >

node.js响应两次

来源:互联网 收集:自由互联 发布时间:2021-06-16
我在debian机器上全新安装节点(来自git)时有一种奇怪的行为. 似乎问题不在我的代码中,因为一切都在 Windows上运行良好. 我已经知道这不是一个图标问题. 这是我写的: var app = require('ex
我在debian机器上全新安装节点(来自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上,或者由浏览器访问.

Merci Hector Correa.

这是我声明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();
})

我现在继续打扰.

网友评论