2014-02-05 2 views
2

Код прост. Меня интересует только первая часть исходного кода youtube.com, и я хотел бы прекратить загрузку данных, когда длина контента выше 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) 
    } 
}) 
Смежные вопросы