Осъзнавам, че „Стартиране на 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 в основната директория на моето приложение за възли.