3

phantomjs-node モジュールを使用して、PDF の印刷に phantomJS を使用しています。うまく機能しますが、一度に複数のファイルを作成しようとすると、未処理のエラー「Listen EADDRINUSE.

これは、モジュールが外部プロセスであるphantomJSを使用しており、同じポートに複数回バインドできないためだと思いますか?

とにかく、このエラーをキャッチすることはできません。少なくとも、これが発生したときにサーバー クラッシュを回避することで、この問題を解決したいと考えています。現在の呼び出しが終了するまで同時呼び出しをブロックするために、ロッカーのような「グローバル」変数を使用することを考えました。

それを実装する方法、または他のソリューションのアイデアはありますか?

4

2 に答える 2

2

@AndyD のコードは正しくありません。の 45 ~ 54 行を参照してください。

https://github.com/sgentle/phantomjs-node/blob/master/phantom.coffee

したがって、例は次のようになります

var portscanner = require('portscanner');
var phantom = require('phantom');

portscanner.findAPortNotInUse(40000, 60000, 'localhost', function(err, freeport) {
  phantom.create({'port': freeport}, function(ph){
    ...
  }
});
于 2013-08-02T23:29:18.543 に答える