parsingNode.js中的数据

我有这个代码就在这里,我想parsingdata ,它应该得到位于url:部分的url: ,代码是:

 var search = require('youtube-search'); var opts = { maxResults: 3, startIndex: 1 }; search('deadmau5', opts, function(err, results) { if(err) return console.log(err); var title1 = results.indexOf("url:"); var title2 = results.indexOf("&feature"); var titl = results.substr(title1 + 7); var result = titl.substr(0, titl.indexOf("&feature")); console.log(result); }); 

但是我得到这个错误:

  var titl = results.substr(title1 + 7); ^ TypeError: Object [object Object],[object Object],[object Object],[object Object ],[object Object],[object Object],[object Object],[object Object],[object Object ],[object Object] has no method 'substr' at c:\Users\karim_000\desktop\iplogger.js:12:25 at c:\Users\karim_000\desktop\node_modules\youtube-search\index.js:42:9 at Parser.<anonymous> (c:\Users\karim_000\desktop\node_modules\youtube-searc h\node_modules\xml2js\lib\xml2js.js:255:20) at Parser.emit (events.js:95:17) at Object.saxParser.onclosetag (c:\Users\karim_000\desktop\node_modules\yout ube-search\node_modules\xml2js\lib\xml2js.js:225:24) at emit (c:\Users\karim_000\desktop\node_modules\youtube-search\node_modules \xml2js\node_modules\sax\lib\sax.js:615:33) at emitNode (c:\Users\karim_000\desktop\node_modules\youtube-search\node_mod ules\xml2js\node_modules\sax\lib\sax.js:620:3) at closeTag (c:\Users\karim_000\desktop\node_modules\youtube-search\node_mod ules\xml2js\node_modules\sax\lib\sax.js:861:5) at Object.write (c:\Users\karim_000\desktop\node_modules\youtube-search\node _modules\xml2js\node_modules\sax\lib\sax.js:1293:29) at Parser.exports.Parser.Parser.parseString (c:\Users\karim_000\desktop\node _modules\youtube-search\node_modules\xml2js\lib\xml2js.js:273:29) at Parser.parseString (c:\Users\karim_000\desktop\node_modules\youtube-searc h\node_modules\xml2js\lib\xml2js.js:6:61) 

我不完全知道我做错了什么,有什么见解或帮助? 提前致谢

这将logging您正在寻找的URL的每个子string,以便您可以进一步操作它。

 var search = require('youtube-search'); var opts = { maxResults: 3, startIndex: 1 }; search('deadmau5', opts, function(err, results) { if(err) return console.log(err); results.forEach(function(result) { console.log(result.url.substring(0, result.url.indexOf('&feature'))); }); }); 

这产生:

 http://www.youtube.com/watch?v=_9IBbMW2o_o http://www.youtube.com/watch?v=-O85-OXktNs http://www.youtube.com/watch?v=kWb-zs1L8Ss 

结果是一个对象的数组!

 search('deadmau5', opts, function(err, results) { if(err) return console.log(err); results.forEach(function (result) { console.log(result.url); }); }); 

这段代码会迭代你的数组并logging结果数组中每个对象的url-property!

正如Seth提到的,你会得到三个以上的search结果!

结果是一个Json数组,你不能使用string方法。 从Json获取你想要的元素,然后使用substr或其他方法

例如:在Json数组中的第一个元素的标题可以findvar title = results [0] ['title'];

我build议你阅读关于JSON