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 */ });
我不知道为什么你不会在节点上做。