zan*_*ona 44 stdin external-process child-process node.js phantomjs
我正在尝试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')");
Run Code Online (Sandbox Code Playgroud)
但我在stdout上唯一得到的是phantomjs控制台的初始提示.
phantomjs>
Run Code Online (Sandbox Code Playgroud)
所以似乎child.stdin.write
没有产生任何影响.
我不确定我是否可以在初始产卵时向phantomjs发送更多信息.
提前致谢.
Vad*_*hev 85
您还需要传递\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
Run Code Online (Sandbox Code Playgroud)
小智 5
您需要用and包围您的write
方法,该方法会刷新自调用以来缓冲的所有数据。也会刷新数据,但不再接受数据。cork
uncork
uncork
cork
child.stdin.end()
var spawn = require('child_process').spawn,
child = spawn('phantomjs');
child.stdin.setEncoding('utf-8');
child.stdout.pipe(process.stdout);
child.stdin.cork();
child.stdin.write("console.log('Hello from PhantomJS')\n");
child.stdin.uncork();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41083 次 |
最近记录: |