HTTP请求流在请求处理程序之外不可读

时间:2012-06-25 02:03:09

标签: node.js

我正在编写一个相当复杂的多节点代理,有时我需要处理HTTP请求,但是在“http.Server”回调之外读取该请求(我需要从请求数据中读取)并在不同的时间以不同的响应排列它。问题是,流不再可读。下面是一些重现问题的简单代码。这是正常的,还是一个错误?

function startServer() {
    http.Server(function (req, res) {
        req.pause();

        checkRequestReadable(req);

        setTimeout(function() {
        checkRequestReadable(req);
        }, 1000);

        setTimeout(function() {
        res.end();
        }, 1100);
    }).listen(1337);
    console.log('Server running on port 1337');
}

function checkRequestReadable(req) {
    //The request is not readable here!
    console.log('Request writable? ' + req.readable);
}

startServer();

2 个答案:

答案 0 :(得分:2)

这适用于0.8.0。我没有尝试0.6.11 +

答案 1 :(得分:2)

它在v0.8.22

中工作
server$ node http_test.js 
Server running on port 1337
Request writable? true
Request writable? true
Request writable? true
Request writable? true
^Cserver$ node -v
v0.8.22
server$