【发布时间】:2019-03-09 19:35:20
【问题描述】:
最新更新
问题似乎出在 getModule 命令中……
我一直在尝试寻找将标准输出从一个 child_process.spawn 管道传输到另一个标准输入的正确方法。我已经做了很多搜索,但被困在这里。谁能看到我哪里出错了或者我遗漏了什么?
另外 - 我发现一些东西表明这种模式是不可预测的(活泼)。如果我弄清楚语法,任何人都可以确认或否认这将可靠地工作吗?
const getModule = spawn('curl' [url, '-ks']);
const unTar = spawn('tar', ['-xz', '-C', fileName, '--strip-components', 1]);
getModule.stdout.pipe(unTar.stdin);
更新
如果有帮助,这是我得到的错误:
Error: TypeError: "file" argument must be a non-empty string
at getModule.then.catch.err (/xxxxx.js:23:38)
at <anonymous>
另外,我确实让它工作了
const getModule = spawn('sh', ['-c', 'curl ' + url + ' -ks | tar -xz -C ' + fileName + '/ --strip-components 1']);
但我正在尝试将一个进程的结果传递给另一个进程。
【问题讨论】:
标签: node.js pipe child-process spawn