2012-06-05 10 views
6

Istnieje wiele przykładów węzłów js w Internecie o tym, jak spawnować proces potomny, a następnie przechwycić wynik jako ciąg dla własnego przetwarzania.węzeł js wchodzi w interakcję z aplikacją powłoki

Ale ...

Chcę "wchodzić w interakcje" z procesem podrzędnym. Na przykład, jak mam napisać aplikację węzła js niż uruchamia się, wywołując "python", a następnie wpisując instrukcję "1+1", pozwala mi uchwycić wynik "2", zanim przejdzie do wpisania innej arbitralnej instrukcji "4+4"?

(I przez "typ" zakładam, że będzie wymagać przesyłania strumieniowego danych do standardowego wejścia, z którego korzysta proces).

+0

Ten film pokazuje również, co próbuję wykonać (o 3:52) http://www.youtube.com/watch?v=16nFMucvwYQ – Trindaz

Odpowiedz

7
var child = require('child_process'); 
var ps = child.spawn('python', ['-i']); 
ps.stdout.pipe(process.stdout); 
ps.stdin.write('1+1'); 
ps.stdin.end(); 

działa przyjemność!