node.jsを使用してperlスクリプトをプロセスとして呼び出し、stdoutを1行ずつ読み戻すことはできますか?node.js perlスクリプトを呼び出してstdoutを取得
通常のjavascriptでは、これは通常は可能ではありませんが、node.jsを使用するサーバー側のスクリプトでは意味があるようです。
node.jsを使用してperlスクリプトをプロセスとして呼び出し、stdoutを1行ずつ読み戻すことはできますか?node.js perlスクリプトを呼び出してstdoutを取得
通常のjavascriptでは、これは通常は可能ではありませんが、node.jsを使用するサーバー側のスクリプトでは意味があるようです。
あなたは、ノードのを使用することができ、内蔵spawn
子プロセスの実行のためのコマンド、およびcarrier
stdout
のライン・バイ・ライン処理処理するために:
をインストールします。
$ npm install carrier
コード:
var util = require('util'),
spawn = require('child_process').spawn,
carrier = require('carrier'),
pl_proc = spawn('perl', ['script.pl']),
my_carrier;
my_carrier = carrier.carry(pl_proc.stdout);
my_carrier.on('line', function(line) {
// Do stuff...
console.log('line: ' + line);
})
はい、spawn/execを調べてください。
http://nodejs.org/docs/v0.4.8/api/child_processes.html
var exec = require('child_process').exec;
exec("perl someperl.pl", function(err, stdout, stderr) {
/* do something */
});
私はあなただけのノードでそれをしないだろう、なぜわかりません。
これは、stdout(およびstderr)を1つの大きなブロブに戻し、行単位ではないことにも注意してください。それがあなたにとって非常に重要であるなら、出力を改行文字に分割する必要があります。 –
おかげで、これはちょうど答えになるかもしれないように見えます。私はこれを行かせます。 – evolution