Дочерний процесс Nodejs: запись в stdin из уже инициализированного процесса

Я пытаюсь порождать внешний процессphantomjs используя узелchild_process и затем отправить информацию этому процессу после его инициализации, возможно ли это?

У меня есть следующий код:

var spawn = require('child_process').spawn,
    child = spawn('phantomjs');

child.stdin.setEncoding = 'utf-8';
child.stdout.pipe(process.stdout);

child.stdin.write("console.log('Hello from PhantomJS')");

Но единственное, что я получил на stdout, - это начальная подсказка для консоли phantomjs.

phantomjs> 

Так кажетсяchild.stdin.write не оказывает никакого влияния.

Я не уверен, что могу послать дополнительную информацию фантомам после первоначального появления.

заранее спасибо.

Ответы на вопрос(1)

Решение Вопроса

Вам нужно также пройти\n символ, чтобы получить вашу команду работать:

var spawn = require('child_process').spawn,
    child = spawn('phantomjs');

child.stdin.setEncoding('utf-8');
child.stdout.pipe(process.stdout);

child.stdin.write("console.log('Hello from PhantomJS')\n");

child.stdin.end(); /// this call seems necessary, at least with plain node.js executable
 loretoparisi03 мая 2017 г., 03:03
@AlexanderMills CLRF\r\n с тех пор's терминатор строки, который запускаетwrite трубить новую линию.child.stdout.pipe(process.stdout); не нужно на самом деле.
 Alexander Mills17 дек. 2016 г., 07:00
Да, но почему? или, возможно, точка с запятой вместо новой строки?
 zanona05 нояб. 2012 г., 12:19
Отличный Вадим! спасибо большое, что сделали свое дело
 Alexander Mills17 дек. 2016 г., 07:18
Я добавил вызов child.stdin.end ()
 karmakaze26 июл. 2018 г., 22:46
child.stdin.end() Звонок имеет решающее значение. Некоторое время ударился головой, пока я не нашел это. Спасибо @AlexanderMills
 Mohamed Allal29 апр. 2019 г., 20:50
@AlexanderMills child.stdin.end () isn 't критическое, в моем случае мне нужно, чтобы процесс оставался открытым. И пиши как мне нужно. выполнить некоторую команду tts (так будет быстро). И это прекрасно работает без child.stdin.end () [\ r \ n - критическая вещь, которая хорошо известна] [I 'Я порождаю powershell.exe, нене знаю о фантомах]. [Как это'для тебя по-другому? Как это'критично? ти]

Ваш ответ на вопрос