Узел - передача одного spawn.child_process другому - PullRequest
0 голосов
/ 04 октября 2018

Последнее обновление

Кажется, проблема в команде getModule ...

Я пытался найти правильный путь для передачи stdout из одного child_process.spawn в stdinдругого.Я довольно много искал, но застрял здесь.Может кто-нибудь увидеть, где я иду не так или что я пропустил?

Кроме того - я обнаружил что-то, указывающее на то, что этот паттерн непредсказуем (racy).Кто-нибудь может подтвердить или опровергнуть, что это будет работать надежно, если я разработаю синтаксис?

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']);

, но вместо этого я пытаюсь передать результаты одного процесса в другой.

1 Ответ

0 голосов
/ 04 октября 2018

Хорошо, это была просто глупая пропущенная запятая после команды curl в объявлении вызова getModule.Я отклеен сейчас.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...