如何使用Node的`child_process.exec`定义子进程的stdin?

时间:2017-09-04 17:36:26

标签: node.js stdin child-process

我想将stdin值传递给child_process.exec。我该怎么做?

对于execSync来说,它非常简单; execSync('myScript', {input: stdin}),但文档未说明如何在stdin上定义exec

1 个答案:

答案 0 :(得分:0)

这可能看似违反直觉,但由于exec是异步的,您实际上可以在代码中稍后使用stdin定义child.stdin.write;

var child = exec(myScript, function(err, result) {
    if (err) return console.log(err);
    console.log(result);
});
child.stdin.write(stdin);
child.stdin.end();

以这种方式定义child.stdin.write时,您还必须手动调用child.stdin.end()