当我在节点上运行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"
}
...
}
我的节点版本是v5.3.0,Npm版本是3.3.12,Phantomjs版本是1.9.8。我在Mac El Capitan 10.11.1
答案 0 :(得分:0)
检查是否有效:
x = new Xray().driver(phantom({
dnodeOpts: {
weak: false
}
}));
我使用phantom
代替x-ray-phantom
,我遇到了同样的问题。似乎模块node-weak
已损坏(https://github.com/TooTallNate/node-weak/issues/65),并且绕过此模块this link suggests解决了我的问题。