2014-02-05 2 views
2

코드가 간단합니다. 저는 youtube.com의 소스 코드 중 첫 번째 부분에만 관심이 있습니다. 예를 들어 content-length가 10000을 초과하면 데이터 다운로드를 중단하고 싶습니다. 나는 성공하지 못하게하려고 노력했다. 어떤 아이디어?Node.js의 요청에서 콘텐츠 본문 길이 제한

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

}); 

답변

2

콜백을 사용하지 마십시오. 요청이 완료되고 요청이 발생하지 않는 경우에만 해고됩니다.

사용 스트림 :

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