【问题标题】:Deploy phantomJS to node.js app?将 phantomJS 部署到 node.js 应用程序?
【发布时间】:2012-04-10 08:30:23
【问题描述】:

我意识到"Running PhantomJS on Heroku" 是一个相关但略有不同的问题,因为我正在尝试使用节点应用程序。

我在为节点应用程序部署 casperJS(基于 phantomJS)脚本时遇到问题。我尝试通过将 PhantomJS 64 位二进制文​​件放在我的应用程序的 /bin 目录中来部署到 Heroku,但是当我尝试运行 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 上注册了 beta 测试,但他们的文档目前仍然非常有限。

编辑:我只需将 PhantomJS 的 lib 文件夹复制到我的节点应用程序的根目录即可使其工作。

【问题讨论】:

    标签: node.js heroku phantomjs casperjs


    【解决方案1】:

    将phantomjs的lib文件夹复制到你的node app的根目录下 您也可以尝试在 bin 或 sbin 中放置符号链接 关键是必须使用与节点运行相同的帐户从终端运行。 此外,node-phantom 是一个很好的 npm 库,一旦你开始使用 phantomjs,就可以使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2021-08-29
      • 2012-10-30
      • 2014-12-29
      • 2013-12-15
      • 2020-11-30
      • 1970-01-01
      相关资源
      最近更新 更多