我该如何将子进程的非缓冲输出导入到HTTP.ServerResponse中呢?
以下Node.js代码可以处理缓冲输出,但无法处理非缓冲输出。
以下是运行
以下Node.js代码可以处理缓冲输出,但无法处理非缓冲输出。
var http = require('http'),
spawn = require('child_process').spawn;
http.createServer(function (req, res) {
req.on('data', function (data) {
var ping = spawn("ping", ["127.0.0.1"]);
ping.stdout.pipe(res);
ping.stderr.pipe(res);
req.connection.on('end', function() {
ping.kill();
});
});
});
以下是运行
ping 127.0.0.1
的输出结果:ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
由于ping
将请求超时写入标准输出作为非缓冲数据,因此上述代码仅在ping
成功时才有效。
我正在使用Node.js v0.8.19。