我知道我可以使用NodeJS触发子进程并获取他们的stdout。但是,我想在他们来的时候实时检索stdout,因为我正在运行一个运行时间更长的程序。有没有办法在NodeJS中做到这一点?
这是我试图查看的文档:http://nodejs.org/docs/v0.5.8/api/child_processes.html#child_process.exec
帮助?想法?模块?黑客?
答案 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) {
//...
});