cheerio.filter()?这段代码运行的原因是什么?

时间:2015-10-04 20:42:58

标签: javascript node.js cheerio

这是我的代码的一部分:

request(main_url, function(error, response, html) {                      // two parameters: an URL and a callback
            if(!error) {
                var $ = cheerio.load(html);
                console.log("begin");
                $('.test').filter(function() {
                                  console.log("in");
                });
                console.log("end");

            }
    });

控制台显示: 的开始 端

这真的很奇怪,我做了一个测试来检查其类的对象是否存在测试,结果是它存在。

所以我不知道为什么它将第4行直接传递到第8行?

1 个答案:

答案 0 :(得分:0)

问题在于request以二进制Buffer的形式返回响应,而不是解码的String

您需要首先将转换 html转换为字符串,然后再使用toString将其传递给cheerio:

var $ = cheerio.load(html.toString());