将phantomJS部署到node.js应用程序?

我意识到 “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文件夹复制到我的节点应用程序的根目录来实现它.

解决方法

将phantomjs的lib文件夹复制到节点应用程序的根目录 您也可以尝试在bin或sbin中放入sym链接 关键是必须使用节点运行的同一帐户从终端运行. 此外,node-phantom是一个很好的npm库,可以在使用phantomjs后使用它.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...