Node.js调用perl脚本并获得标准输出

node.js call a perl script and get stdout

本文关键字:标准输出 脚本 js 调用 perl Node      更新时间:2023-09-26

是否可以使用node.js调用perl脚本作为进程并逐行读取标准输出?

我很确定与正常的javascript这通常是不可能的,但服务器端脚本使用node.js它似乎是有意义的。

您可以使用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);
})

是的,查看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 */
});

我不知道你为什么不直接在node中做。