Node.js Javascript和Express
我试图通过把它分成两个string来操纵string。
我的js
var request = require('request'); var cheerio = require('cheerio'); var href1,href; var str = "https://google.co.in/search?q=okay"+"+google"; request(str, function (error, response, html) { if (!error && response.statusCode == 200) { var $ = cheerio.load(html); var a = $('.r a'); href = a.attr('href'); href1="https://google.co.in"+href; var href console.log(href1); request(href1, function (error, response, html){ if (!error && response.statusCode == 200) { var $ = cheerio.load(html); var a1 = $('ol li a'); var href2 = a1.attr('href'); var href3 = href2.indexOf("/48"); var href4=href3.substring(0,20); console.log(href4); } }); } });
它在我使用substring函数的那一行给出了一个TypeError:
未定义不是一个函数。
但是,href3返回一个整数,这很好。 所以,我知道href3不是空的或未定义的。
我该如何解决?
你正试图从一个数字调用一个string函数。 Href3将不具有子string函数,因为indexOf返回一个Number。
该行:
var href4=href3.substring(0,20);
应该可能是:
var href4=href2.substring(0,20);