请求未在node.js中结束(用于工作)

请求未在node.js中结束(用于工作),node.js,Node.js,我有一段代码: var app = require('http').createServer(function(req, res){ console.log(req); req.addListener('end', function () { fileServer.serve(req, res); }); }); var statics = require('node-static'); var fileServer = new statics.Ser

我有一段代码:

var app = require('http').createServer(function(req, res){
    console.log(req);
    req.addListener('end', function () {
        fileServer.serve(req, res);

    });
});

var statics = require('node-static');
var fileServer = new statics.Server('./');

app.listen(1344, '127.0.0.1');

app.on('error', function(err){
    console.log(err);
})
它工作得很好,直到我做了一些更改,node给出了一个错误,当我返回时,该错误不再存在,而是像在未触发
end
事件之前一样工作。因此,
req.addListener('end',function(){})中的任何内容未被调用

即使我运行另一个使用相同事件的node.js,也不会被触发。这就像请求的结束事件被破坏一样。但这怎么可能呢

这已经不是第一次了。上次我重新安装了node(在尝试了很多不同的事情之后)。我更愿意找到一个解决方案,这样我才能理解问题

注意:原始代码包括socket.io和其他类型的连接,但我刚刚粘贴了应用程序被卡住的代码


了解如何调试问题也很有用

@InspiredJW指出这一点应该得到赞扬,因为我已经忘记了,但毫无疑问,你的问题是因为可读流的变化。为了调用
end
事件,您必须将侦听器连接到
数据
事件,或者必须调用
流.resume()


尝试使用
节点v0.8.x
或阅读中的Stream2文档,我不能说
文件服务器.service
是否工作,但是如果您取出与
节点静态相关的所有内容,您的代码将按原样工作,并且肯定会调用
结束
事件。我记得当我们尝试使用
节点static
时遇到了问题,如果这确实是您的问题,您最好使用Connect的静态中间件@我在v0.10.3上。你是说我应该降级吗?没有节点静态也不行。无论如何,我都要尝试一下连接。但是我认为我应该首先重新安装node。@limoragni或者您可以使用
resume
来创建新的流。他现在正在工作。我不明白的是,我是怎么开始工作的!我是node.js的新手,我必须读很多书才能让事情顺利进行。你知道一本关于node的好书吗?我知道Apress正在开发一个,但我更希望马上就有一个。谢谢对不起,我不知道。我只是通过使用它来学习node。它以前可能工作过,因为您连接了
'data'
事件侦听器,或者您使用的是旧版本的节点。@limoragni您可能将节点升级到v0.10.3或更高版本,这就是导致它停止工作的原因。
require('http').createServer(function(req, res){
    req.addListener('end', function () {
        // won't ever get called in node v0.10.3
    });
});

require('http').createServer(function(req, res){
    req.addListener('end', function () {
        // will get called in node v0.10.3 because we called req.resume()
    });
    req.resume();
});

require('http').createServer(function(req, res){
    req.on('data', function (chunk) {  });

    req.addListener('end', function () {
        // also will get called because we attached a data event listener
    });
});