Развернуть phantomJS в приложении node.js?

Я понимаю «Запуск PhantomJS на Heroku»— связанный, но немного другой вопрос, поскольку я пытаюсь использовать приложение узла.

У меня возникли проблемы с развертыванием сценария casperJS (на основе phantomJS) для приложения узла. Я попытался выполнить развертывание на Heroku, поместив 64-битный двоичный файл PhantomJS в каталог /binмоего приложения, но при попытке запустить PhantomJS я получаю следующую ошибку:

phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory

Из того, что я прочитал это можно решить, установив библиотеку QtWebKit, но в Heroku она не установлена. Есть ли другой хостинг-провайдер, который будет работать, или способ установить этот пакет на Heroku?

Соответствующий код:

app.get('/', function(request, response) {
  var sys = require('sys')
  var exec = require('child_process').exec;
  var child;

  //works but gives error while loading shared library libqtwebkit.so.4
  child = exec("phantomjs --version | tr -d '\n'", function(error, stdout, stderr) {
    sys.print('stdout: ' + stdout);
    sys.print('stderr: ' + stderr + '\n');
    response.header('Content-Type', 'application/json');
    response.send('_testcb(stdout:' + stdout + '\nstderr:' + stderr + ')', 200);
    if(error !== null) {
      console.log('exec error: ' + error);
    }
  });
});

Я подписался на бета-тестирование на Nodester, но на данный момент их документация все еще довольно ограничена.

РЕДАКТИРОВАТЬ: мне удалось заставить его работать, просто скопировав папку lib PhantomJS в корневой каталог моего приложения node.

7
задан Community 23 May 2017 в 11:44
поделиться