我可以实时查看NodeJS中的stdout吗?

时间:2011-10-07 06:27:33

标签: javascript node.js

我知道我可以使用NodeJS触发子进程并获取他们的stdout。但是,我想在他们来的时候实时检索stdout,因为我正在运行一个运行时间更长的程序。有没有办法在NodeJS中做到这一点?

这是我试图查看的文档:http://nodejs.org/docs/v0.5.8/api/child_processes.html#child_process.exec

帮助?想法?模块?黑客?

2 个答案:

答案 0 :(得分:12)

子进程stdout / stdin / stderr为Streams

查看此页面部分以获取更多信息: http://nodejs.org/docs/latest/api/child_process.html#child_process_child_process_spawn_command_args_options

本节的例子:

var util  = require('util'),
    spawn = require('child_process').spawn,
    ls    = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
  console.log('stderr: ' + data);
});

ls.on('exit', function (code) {
  console.log('child process exited with code ' + code);
});

答案 1 :(得分:2)

ps.stdout.on('data', function (data) {
   //...
});