是否可以使用node.js作为进程调用perl脚本并逐行读回stdout?
我非常肯定使用普通的javascript这通常是不可能的,但是使用node.js的服务器端脚本似乎有点意义。
答案 0 :(得分:7)
您可以使用node的内置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);
})
答案 1 :(得分:6)
是的,请查看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 */
});
我不确定你为什么不在节点中这样做。