Como limitar o tamanho da resposta com http.request no Node.js
Portanto, nesse código (simplificado) de bits, quando alguém acessa meu servidor de nó, faço uma solicitação GET para outro site e imprimo o título da página HTML no console. Funciona bem:
var http = require("http");
var cheerio = require('cheerio');
var port = 8081;
s = http.createServer(function (req, res) {
var opts = {
method: 'GET',
port: 80,
hostname: "pwoing.com",
path: "/"
};
http.request(opts, function(response) {
console.log("Content-length: ", response.headers['content-length']);
var str = '';
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function() {
dom = cheerio.load(str);
var title = dom('title');
console.log("PAGE TITLE: ",title.html());
});
}).end();
res.end("Done.");
}).listen(port, '127.0.0.1');
No entanto, no aplicativo real, os usuários podem especificar um URL a ser atingido. Isso significa que meu servidor de nós pode estar baixando arquivos de filme de 20 GB ou o que for. Não é bom. O cabeçalho do comprimento do conteúdo não é útil para interromper isso, pois não é transmitido por todos os servidores. A questão então:
Como posso dizer para parar o pedido GET depois de, digamos, os primeiros 10 KB serem recebidos?
Felicidades!