2

当我在节点上运行 app.js 时,我在命令行中收到此错误:

FATAL ERROR: v8::HandleScope::CreateHandle() Cannot create a handle without a HandleScope
Abort trap: 6

这是 app.js 的样子:

var phantom = require('x-ray-phantom');
var Xray = require('x-ray');
var fs = require('fs');

x = new Xray().driver(phantom());;
x('http://www.bbc.co.uk/news', '.most-popular__list panel-read li', [{
  content: ''
}])(function (err, results) {
  fs.writeFile('results.json', JSON.stringify(results, null,  '\t'));
})

我的 package.json

{
  ...
  "dependencies": {
    "phantomjs": "^1.9.19",
    "x-ray": "^2.0.2",
    "x-ray-phantom": "^1.0.1"
  }
  ...
}

我的node版本是v5.3.0,npm版本是3.3.12,Phantomjs版本是1.9.8。我在 Mac El Capitan 10.11.1

4

1 回答 1

0

检查这是否有效:

x = new Xray().driver(phantom({ dnodeOpts: { weak: false } }));

我使用phantom而不是,x-ray-phantom我遇到了同样的问题。看来该模块node-weak已损坏(https://github.com/TooTallNate/node-weak/issues/65 ),并且按照此链接的建议绕过此模块已解决了我的情况。

于 2015-12-29T23:52:24.383 回答