限制Node.js中的请求中的主体内容长度

代码很简单。 我只对youtube.com源代码的第一部分感兴趣,例如,当内容长度高于10000时,我想停止下载数据。 我一直在试图做到没有成功。 有任何想法吗?

var request = require('request'); var cheerio = require('cheerio'); var url = 'https://www.youtube.com/'; request(url, function(err, resp, body) { if (err) throw err; $ = cheerio.load(body); }); 

不要使用callback,只有在请求完成时才会被触发,并且您的请求将永远不会被触发。

使用stream:

 var request = require('request') var url = 'https://www.youtube.com/' var stream = request({ url: url, encoding: 'utf8' }) var len = 0 var result = '' stream.on('data', function(d) { len += Buffer.byteLength(d) result += d if (len > 1000) { stream.abort() console.log(d) } })