スクリーンショットを作成するために phantomjs プロセスを生成するノード サーバーを作成しようとしています。実行するとgrab.jsスクリプトが正常に動作し、stdoutに書き込むことを確認しました。問題は、プロセスを生成するノード コードが単にハングすることです。パスにphantomjsがあることを確認しました。ここで何が起こっているのか、またはこれをトラブルシューティングする方法を知っている人はいますか?
ページをレンダリングし、データを stdout に書き込む 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);
});