2017-09-08 4 views
0

Comment émuler les fichiers de Linux | (pipe) dans une application node.js pour canaliser le stdout d'une commande au stdin de la commande suivante. Les deux commandes sont générées avec spawnSync.Envoi du fichier stdout de spawnSync à un autre fichier stdin spawnSync

Ce (pseudo-code) fonctionne comme prévu dans la ligne de commande:

$ command1 -arg1 file | command2 arg2 
> someoutput 

Mais cela ne: Je crois

const spawnSync = require('child_process').spawnSync; 

const c1Spawn = spawnSync('command1', ['arg1', 'file']); 
const c2Spawn = spawnSync('command2', ['arg2'], { input: c1Spawn.output }); 

const someoutput = c2Spawn.output; 

Répondre

0

J'ai trouvé la réponse à l'aide input: c1Spawn.stdout au lieu de la production comme dans pour la deuxième commande.

const spawnSync = require('child_process').spawnSync; 

const c1Spawn = spawnSync('command1', ['arg1', 'file']); 
const c2Spawn = spawnSync('command2', ['arg2'], { input: c1Spawn.stdout }); 

const someoutput = c2Spawn.output;