产生的phantomjs过程挂

我试图创build一个节点服务器,产生phantomjs进程来创build屏幕截图。 grab.js脚本在执行时工作正常,我已经确认它写入标准输出。 问题是生成过程简单地挂起的节点代码。 我已经确认phantomjs在路上。 任何人都知道这里可能会发生什么,或者我可能会如何解决这个问题?

下面是渲染页面并将数据写入标准输出的phantomjs代码(grab.js):

var page = require('webpage').create(), system = require('system'), fs = require('fs'); var url = system.args[1] || 'google.com'; page.viewportSize = { width: 1024, height: 1200 }; page.open(url, function() { var b64 = page.renderBase64('png'); fs.write('/dev/stdout', b64, 'w'); phantom.exit(); }); 

下面是生成幻影进度并打印结果(挂起)的节点代码:

 var http = require('http'), exec = require('child_process').exec, fs = require('fs'); exec('phantomjs grab.js google.com', function(error, stdout, stderr) { console.log(error, stdout, stderr); }); 

我有类似的问题与执行,然后切换到使用spawn代替,它的工作。 根据这篇文章 , 当你希望subprocess向Node返回大量的二进制数据时使用spawn,当你希望subprocess返回简单的状态消息时使用exec。 心连心