我正在编写一个相当复杂的多节点代理,有时我需要处理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();
答案 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$