Cheerio(node.js)在html读取时返回错误

时间:2014-05-11 00:46:08

标签: javascript node.js npm cheerio

我是JS的新手,完全陷入了Node Cheerio。如果有人能帮助我,我真的很感激。

我正在处理的代码在这里:https://github.com/zafartahirov/bitstarter

(在找到修复程序后,不起作用的代码将被称为grader.old.js。)

当我跑步时

node ./grader.js --file index.html --checks checks.json | less

我收到错误:

TypeError: Cannot call method 'utf8Slice' of null
    at Buffer.toString (buffer.js:416:26)
    at exports.isTag (/home/ubuntu/GitHub/bitstarter/node_modules/cheerio/lib/utils.js:15:14)
    at Function.filter (/home/ubuntu/GitHub/bitstarter/node_modules/cheerio/node_modules/lodash/dist/lodash.js:3150:15)
    at /home/ubuntu/GitHub/bitstarter/node_modules/cheerio/lib/api/traversing.js:9:26
    at Function.reduce (/home/ubuntu/GitHub/bitstarter/node_modules/cheerio/node_modules/lodash/dist/lodash.js:3734:25)
    at exports.find (/home/ubuntu/GitHub/bitstarter/node_modules/cheerio/lib/api/traversing.js:8:17)
    at new module.exports (/home/ubuntu/GitHub/bitstarter/node_modules/cheerio/lib/cheerio.js:92:18)
    at initialize (/home/ubuntu/GitHub/bitstarter/node_modules/cheerio/lib/static.js:23:12)
    at checkHtmlFile (/home/ubuntu/GitHub/bitstarter/grader.js:59:23)
    at Object.<anonymous> (/home/ubuntu/GitHub/bitstarter/grader.js:76:21)
(END)

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

我们采用相同的方法,我花了很长时间来调试它。 似乎cheerio.load()方法期望String作为参数而不是缓冲区。