我认为这很简单,但以下内容无法正常工作。
我想从Node中将数据传输到一个进程,比如说(只是一个用于说明的任意命令)wc
。
docs和其他SO questions似乎表明传递Stream应该有效:
const {spawnSync} = require('child_process')
const {Readable} = require('stream')
const textStream = new Readable()
textStream.push("one two three")
textStream.push(null)
const stdio = [textStream, process.stdout, process.stderr]
spawnSync('wc', ["-c"], { stdio })
不幸的是,这会引发错误:
值"可读{...}对选项" stdio"
无效
relevant bit of code from internal/child_process.js
并未立即显示预期的有效选项。
答案 0 :(得分:8)
要将特定数据显示为子流程的stdin
数据,您可以使用input
选项:
spawnSync('wc', ['-c'], { input : 'one two three' })