最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Cheerio刮痧与蓝鸟承诺

IT培训 admin 4浏览 0评论

Cheerio刮痧与蓝鸟承诺

为什么这段代码不起作用?我明白了

TypeError: $ is not a function

test.js

'use strict';

var Promise = require('bluebird');
var request = require('request-promise');
var cheerio = require('cheerio');

module.exports = {
    get: function () {

        return new Promise(function (resolve, reject) {
            var options = {
                uri: '',
                transorm: function (body) {
                    return cheerio.load(body);
                }
            };

            request(options)
                .then(function ($) {
                    // Error happens here
                    $('#mydivid').text();
                    resolve();
                })
                .catch(function (error) {
                    console.log(error);
                    reject(error);
                });
        });
    }
}
回答如下:

我又看了一眼,发现了这个问题。你的options对象如下:

 var options = {
                uri: 'https://www.example',
                transorm: function (body) {
                    return cheerio.load(body);
                }
 };

你使用transorm而不是transform。因此它返回的html内容字符串而不是cheerio.load(body)。将它改为transform它会起作用。

 var options = {
                uri: 'https://www.example',
                transform: function (body) {
                    return cheerio.load(body);
                }
 };

Cheerio刮痧与蓝鸟承诺

为什么这段代码不起作用?我明白了

TypeError: $ is not a function

test.js

'use strict';

var Promise = require('bluebird');
var request = require('request-promise');
var cheerio = require('cheerio');

module.exports = {
    get: function () {

        return new Promise(function (resolve, reject) {
            var options = {
                uri: '',
                transorm: function (body) {
                    return cheerio.load(body);
                }
            };

            request(options)
                .then(function ($) {
                    // Error happens here
                    $('#mydivid').text();
                    resolve();
                })
                .catch(function (error) {
                    console.log(error);
                    reject(error);
                });
        });
    }
}
回答如下:

我又看了一眼,发现了这个问题。你的options对象如下:

 var options = {
                uri: 'https://www.example',
                transorm: function (body) {
                    return cheerio.load(body);
                }
 };

你使用transorm而不是transform。因此它返回的html内容字符串而不是cheerio.load(body)。将它改为transform它会起作用。

 var options = {
                uri: 'https://www.example',
                transform: function (body) {
                    return cheerio.load(body);
                }
 };

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论