Cheerio错误处理程序节点js
问题描述:
我使用Node.js开始一个新项目,我想知道是否有任何方法来管理从cheerio.load()函数返回的内容。 我试图使用回调和承诺(然后赶上),但它没有工作。Cheerio错误处理程序节点js
例如:
var $ = cheerio.load(html);
//what if it's falied ???? how I can handle it?
我问这个,因为我试图运行脚本薮时间,但有时它的工作,有时没有。
BTW: 我使用cheerio模块从故宫网站 - >npm install cheerio.
感谢:-)
答
可以使用try/catch块,因为你不知道,如果cheerio操作会成功。
const cheerio = require('cheerio')
try {
const $ = cheerio.load(html)
} catch (e) {
console.log(e) // handle error
}
console.log('continue script')
只要你给它传递一个字符串,它就应该做SOMETHING。从技术上讲,HTML中没有语法错误。 (如果你在HTML文件中做了一些奇怪的事情,这取决于你的浏览器来纠正它,并继续加载文件)。你能提供一个“不工作”的例子吗?你通过了什么?它有什么作用? – Sidney
'/home/ubuntu/workspace/node_modules/cheerio/lib/parse.js:55 var oldParent = node.parent || node.root, ^ TypeError:无法读取null的属性'parent' –
在'var $ = cheerio.load(html);'之前,添加以下行:'console.log(html)'。你刚刚发布的错误通常意味着你将*不是字符串*传递给cheerio。 'console.log'会告诉你希望'html'在cheerio加载之前就好了。 – Sidney