是否可以使用node.js作爲進程調用perl腳本並逐行讀回標準輸出?node.js調用perl腳本並獲取標準輸出
我很肯定,與正常的JavaScript這通常是不可能的,但使用node.js服務器端腳本似乎是有道理的。
是否可以使用node.js作爲進程調用perl腳本並逐行讀回標準輸出?node.js調用perl腳本並獲取標準輸出
我很肯定,與正常的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);
})
是的,看看產卵/執行。
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),而不是逐行。如果這對你非常重要,你需要將輸出分割成換行符。 –
謝謝你們,看起來這可能就是答案。我會放棄這一點。 – evolution