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);