Дочерний стандартный вывод установлен для наследования и прослушивания onData

В приложении nodejs мне нужно создать дочерний процесс с stdio, установленным в режим «наследовать», поэтому в основном:

var child = spawn('some/command', [], {
  stdio: [process.stdin, process.stdout, process.stderr]
});

Это очень важно, потому что я ожидаю, что дочерний процесс будет писать в свой стандартный вывод в необработанном режиме, и я хочу, чтобы этот «необработанный вывод» также был виден моим пользователям. В то же время я хочу проанализировать обычный вывод этого процесса. Обычно я бы сделал:

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

но в данном случае нет child.stdout. Второй вариант — использовать process.stdout, но, честно говоря,

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

так же не работает. Мне интересно, есть ли другой способ захватить эти данные?


person Tomasz Lenarcik    schedule 20.12.2014    source источник


Ответы (1)


Вы можете использовать такой модуль, как pty, который позволит вам создать "поддельный tty", который вы сможете прочитать /писать от/куда.

person mscdex    schedule 20.12.2014