新手,res.on('data')只能得到一次数据的问题. 在线等!
发布于 11 年前 作者 poisedflw 10078 次浏览 最后一次编辑是 8 年前

function start(route, handle) { http.createServer(function(request, response) { var postData = “test”; var pathname = url.parse(request.url).pathname;

    request.addListener("end", function(test) {
        route(handle, pathname, response, postData);
    });

    request.addListener("data", function(chunk) {
        postData += chunk;
        console.log("Recived post data chunk '" + chunk + "'.");
    });
}).listen(8888);

} 如上的代码, 当把request的监听放到函数start中的时候data事件只会触发一次? 求教啊 新手,遇到这个问题很是纠结. 换on触发也没用.

4 回复

触发一次, 收到什么了?

我想 request 是不是不应该加 data listener。你这一加,server 不就收不到数据了,就没法 route 了。所以,你的data listener 被 server 的 data listener 覆盖了。

数据太小了。所以只有一次,你post个大文件上去看看

你是post请求的吗?

不知道你是怎么测试发出http请求的 如果是利用req = http.request();发出的请求,每一次调用req.write();都会发射data事件。 如果是浏览器的话,发送到你的服务器的数据流是不是只有一个,所以只会触发一次data事件

回到顶部