【问题标题】:Limit body content-length in a request in Node.js在 Node.js 中的请求中限制正文内容长度
【发布时间】:2014-02-05 12:25:14
【问题描述】:

代码很简单。我只对 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);

});

【问题讨论】:

    标签: node.js request limit npm content-length


    【解决方案1】:

    不要使用回调,它只会在请求完成时触发,并且你的请求永远不会。

    使用流:

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

    【讨论】:

    • 我如何在 Axios 中做到这一点?
    猜你喜欢
    • 2023-03-10
    • 2020-02-13
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    相关资源
    最近更新 更多