如何使用`child_process.spawn`的管道选项?

时间:2014-04-07 16:34:26

标签: javascript node.js

当我阅读Node的文档时,我找到了这个选项。

stdin设置为pipe时很容易理解。 但是,当您想将stderrstdout设置为pipe时?

如果stderrstdout都设置为pipe,您能举例说明吗?

child_process.spawn(cmd, args, { stdio: ['ignore', 'pipe', 'pipe'] })

// How to use the pipe?
// Usage...

1 个答案:

答案 0 :(得分:0)

您看到的代码应该已经将/dev/null附加到stdin,并将stdin + stdout传递给父进程的各个流。这不起作用吗?

同样的事情可以通过几种不同的方式实现。

示例:管道当前节点进程的ls -a到stdout + stderr的stdout + stderr,并使用与子命令相同的退出代码终止节点进程

var spawn = require("child_process").spawn;

var ls = spawn("ls -a");
ls.stdout.pipe(process.stdout);
ls.stderr.pipe(process.stderr);
ls.on("exit", function(code) {
    process.exit(code);
});