Подтвердить что ты не робот

Nodejs Child Process: напишите в stdin из уже инициализированного процесса

Я пытаюсь запустить внешний процесс phantomjs с помощью node 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 не влияет.

Я не уверен, что могу отправить дополнительную информацию в phantomjs на исходный икру.

заблаговременно.

4b9b3361

Ответ 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