我在节点中生成子进程,对于我正在使用的选项{stdio:'inherit'}
,我需要这样做,因为子进程需要接受来自用户的一些输入。
我还需要得到这个输出,因为孩子的输出实际上没什么,因为它正在使用父项。我考虑在孩子进程后快速process.stdout.on('data', ...)
附加和分离,但我不想这样做。我假设这是一些节点流解决方案?喜欢首先拦截输入的东西,然后将它传递给我的父进程?
TLDR需要在节点中执行stdio:'inherit'
时输出子进程。也许将子进程的输出传递给Buffer / string的东西?
谢谢,如果回答提供工作代码示例
,请答案 0 :(得分:0)
想出来!
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 us\n')