У меня есть два файла, from.js
и to.js
.Я пытаюсь выполнить потоковую передачу на to.js
с from.js
, в то же время перечисляя вывод to.js
в from.js
, чтобы я мог контролировать выход to.js
.
Мне кажется, это тривиальный случайВидимо, я что-то упускаю ... Не могу понять, что, хотя.
from.js
const {Readable} = require('stream'),
{spawn} = require('child_process')
;
const log = (v) => console.log(v)
const to = spawn('node', ['./to.js']);
to.on('data', log);
to.on('error', log);
const from = new Readable({
read() {
this.push(Math.random().toString() + '\n');
}
});
from
.pipe(to.stdin)
;
to.js
process.stdin
.pipe(process.stdout)
;
Я получаю Error: This socket is closed
.Может ли кто-нибудь объяснить, почему это не работает.
{ Error: spawn node ENOENT
at exports._errnoException (util.js:1020:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:197:32)
at onErrorNT (internal/child_process.js:376:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:606:11)
at run (bootstrap_node.js:383:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:496:3
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawn node',
path: 'node',
spawnargs: [ './to.js' ] }
events.js:160
throw er; // Unhandled 'error' event
^
Error: This socket is closed
at Socket._writeGeneric (net.js:679:19)
at Socket._write (net.js:730:8)
at doWrite (_stream_writable.js:333:12)
at writeOrBuffer (_stream_writable.js:319:5)
at Socket.Writable.write (_stream_writable.js:245:11)
at Socket.write (net.js:657:40)
at Readable.ondata (_stream_readable.js:555:20)
at emitOne (events.js:96:13)
at Readable.emit (events.js:188:7)
at Readable.read (_stream_readable.js:381:10)