バッファされていない出力を子プロセスから HTTP.ServerResponse にパイプするにはどうすればよいですか?
以下の 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
リングされていないデータとして STDOUT に書き込むため、上記のコードは成功した場合にのみ機能します。ping
Node.js v0.8.19 を使用しています。