无法理解node.js监听器

目前我正在研究两个node.js教程,当我明白每个教程中发生的事情时显然不清楚发生了什么。

下面的代码监听“data”事件,然后将新的数据块添加到名为postData的variables中。 另一个监听器将这些数据与其他的东西一起发送到我的route.js文件。

request.addListener("data", function (postDataChunk) { postData += postDataChunk; console.log("Received POST data chunk '" + postDataChunk + "'."); }); request.addListener("end", function () { route(handle, pathname, response, postData); }); 

下面的代码创build一个variablestailChild,在我的系统日志中生成shell命令“tail”,然后尝试将这些数据添加到我的postDatavariables中:

 var spawn = require('child_process').spawn; var tail_child = spawn('tail', ['-f', '/var/log/system.log']); tail_child.stdout.on('data', function (data) { postData += data; console.log("TAIL READING: " + data); }); tail_child.stdout.on('end', function () { route(handle, pathname, response, postData); }); 

现在我的控制台实时更新system.log数据,但我的浏览器超时与“没有数据收到错误”。

我已经尝试调整上面的代码来判断出了什么问题,并且我可以告诉节点告诉我var数据是空的,所以它没有向var postData添加任何内容。 这对我来说没有任何意义,因为console.log("TAIL READING: " + data)给了我spawn('tail', ['-f', '/var/log/system.log'])在我的terminal窗口。 很明显,var数据不是null。

编辑: 这是一个pastebin链接到我的server.js代码

尾-f将不会触发结束callback,所以你永远不会回应用户。