获取用继承创建子过程的输出



我正在在节点中产生一个子过程,其中opts我正在使用 {stdio:'inherit'},我需要这样做,因为子进程需要接受用户的某些输入。

我还需要获取此输出,因为孩子的输出实际上是什么都没有的,因为它正在使用父母的输出。我考虑过在孩子过程后快速进行process.stdout.on('data', ...)附加和分离,但我宁愿不这样做。我认为这是一些节点流解决方案?就像可以先截获输入的东西,然后将其传递给我的父程流程?

TLDR需要在节点中执行stdio:'inherit'的同时,需要输出子过程。也许可以将子过程输出到缓冲区/字符串的东西?

谢谢您,如果回答提供工作代码示例

弄清楚了!

const child_process = require('child_process');
const child = child_process.spawn('python3', ['./eater.py'], {
  stdio: ['inherit', 'pipe', 'pipe'],
});
const output = [];
child.stdout.on('data', d => {
  console.log(d.toString());
  output.push(d.toString());
});
child.stdout.on('end', () => {
  console.log('Finished');
  console.log({ output });
});

如果python像:

print("Some prompt") auth_code = input('Provide some code to usn')

最新更新