请求不以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.Server('./');

app.listen(1344,'127.0.0.1');

app.on('error',function(err){
    console.log(err);
})

它运行得很好,直到我做了一些更改,节点给出了一个错误,当我回去时,那个错误不再存在了,但是在结束事件没有被触发之前它没有工作.因此,req.addListener(‘end’,function(){});中的任何内容都不会被调用.

即使我运行另一个使用相同事件的node.js,也不会被激活.因此,如果请求的结束事件被破坏了.但是怎么可能呢?

这不是第一次发生.上次我最终重新安装节点(尝试了很多不同的东西后).我宁愿找到解决方案,所以我能理解这个问题!

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

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

解决方法

@InspiredJW应该因为我已经忘记它而得到赞扬,但毫无疑问,你的问题是由于可读流的变化.为了调用end事件,您必须将侦听器附加到data事件,或者必须调用stream.resume().

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,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
    });
});

http://nodejs.org/api/stream.html#stream_compatibility

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...