node.js调用perl脚本并获取stdout

是否有可能使用node.js作为一个进程调用一个Perl脚本,并逐行回读标准输出?

我相当肯定与正常的JavaScript这通常是不可能的,但使用node.js服务器端脚本似乎是有道理的。

您可以使用节点的内置spawn命令来执行subprocess,并使用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 */ }); 

我不知道为什么你不会在节点上做。