使用node.js实时读取stdout

时间:2016-03-16 19:47:37

标签: node.js file console stdout

我遇到了问题,我需要实时从控制台输出中读取。我有一个文件,我需要执行,尝试做这样的事情test.exe > text.txt但是当我尝试读取exe文件运行时,我无法看到任何东西,直到exe完成并在同一时间写入所有行。我需要使用node.js

来做到这一点

2 个答案:

答案 0 :(得分:2)

您应该可以使用child_process.spawn()开始此过程,并从stdout / stderr个流中读取:

var spawn = require('child_process').spawn;
var proc = spawn('test.exe');
proc.stdout.on('data', function(data) {
  process.stdout.write(data);
});
proc.stderr.on('data', function(data) {
  process.stderr.write(data);
});
proc.on('close', function(code, signal) {
  console.log('test.exe closed');
});

答案 1 :(得分:0)

test.exe可能会缓冲它的输出。

您可以尝试使用spawn或使用pseudo tty

运行它
const spawn = require('child_process').spawn;
const type = spawn('type.exe');

type.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

type.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
});

type.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});