8
votes

Apprendre HTTP Recueillir par un

J'apprends nœud.js via les tutoriels d'apprendre et je suis coincé à l'exercice HTTP-COLLECT. Je veux faire fonctionner mon code sans l'aide d'un programme tiers. Cela fonctionne presque, mais pour une raison quelconque, il ne reçoit pas le premier bloc de données de la source de Source Learnyounode siphonne les données de, donc mon code est faux. Ceci est mon code jusqu'à présent: xxx

et la sortie du terminal: xxx

j'ai vu Ceci poster sur donc mais cela ne m'a pas vraiment aidé depuis 1 ) J'essaie d'utiliser http.get () comme spécifié dans les notes de l'exercice et 2) mon problème ne semble pas avoir à voir avec des problèmes de proxy. Toute astuce / aide serait appréciée, je ne sais pas vraiment comment réparer le code d'ici.


0 commentaires

4 Réponses :


5
votes

d'oh ... Après avoir piquant un peu plus, j'ai trouvé ce qui n'allait pas: le premier numéro n'était pas des données que j'étais manquantes, ce n'était que la longueur du texte reçu en caractères. Il n'y avait vraiment rien de mal avec le programme lui-même. J'ai corrigé mon code en ajoutant console.log (info.join (""). Longueur); avant la console (info.join (""); ligne.


0 commentaires

1
votes

Parce que vous n'avez pas imprimé la longueur de tous les caractères avant d'imprimer la chaîne. Remplacez la déclaration dans l'événement «End» par:

datas = info.join("")
console.log(datas.length);
console.log(datas);


0 commentaires

2
votes

var http = require('http');
var result = ''
var req = http.get(process.argv[2], (response)=>{
	response.setEncoding('utf8');
	response.on('data', (data)=>{
		result+=data.toString();
	});
	response.on('error', (e)=>{
	console.log(e);
	});
	response.on('end',()=>{
		console.log(result.length);
		console.log(result);
		result='';
	});
});


0 commentaires

-1
votes
var http = require('http');
var bl = require('bl');

http.get(process.argv[2], function (response) {

   response.pipe(bl(function (err, data) {

     if (err)
       return console.error(err);
     data = data.toString();
     console.log(data.length);
     console.log(data);
   }));

 });

0 commentaires