2013-07-02 29 views
5

Akışım var ve içerik akışı dizeye almam gerekiyor. Http.get kullanarak internetten akışı yapıyorum. ... yüzden bütün tavsiyeleri için dizeye Teşekkür akışı dönüştürmek gerekir ... Ben de dosyaya akışı yazma ama dosyası yazmak istemiyorum ve bundan sonra aynı dosyayı açın ve ondan okumakNode.js - Akışa nasıl bağlanır

+0

Sorunuz çok muğlak. Yani gelen verileri bir dizgeye dönüştürmek mi yoksa diske mi yazmak istiyorsunuz? Bazı örnek kodlar yardımcı olacaktır. –

+2

[Write node.js akışının bir dize değişkenine yazılması] olası bir kopyası (http://stackoverflow.com/questions/10623798/writing-node-js-stream-into-a-string-variable) –

cevap

1

yapmaz. Bu, daha sonra gitmek istediğiniz her yere gönderilebilir ve ayrıca bir değişkene atayabilecek veya doğrudan tek bir işlevde kullanabilen bir through() yöntemi yazabilirsiniz. url ve geri arama: -

var http = require('http'); 

var string = ''; 
var request = http.get('http://www.google.cz', function (err, data){ 
    if (err) console.log(err); 
    string = data.toString(); 
    //any other code you may want 
}); 
//anything else 

Son bir not http.get() metodu iki parametre alır. Bu iki parametre gerektirir ve boş bir hata mesajı olduğundan hiçbir şey almıyor olabilirsiniz.

+2

Bence bu sadece burada çalışır çünkü http.get genişletilmiş bir akış döndürür, genel olarak Readable akışları yok Bu şekilde çalışan bir toString yöntemine sahip olmak. –

1

Yani,

I have this: 
var centent = ''; 
var adress = "http://www.google.cz"; 
var request = http.get(adress.trim(), function(response) {  
     //I need to get content of http stream into variable content and after that continue   
} 

bunun çalışacağını düşünüyordum ama yerine akışta toString() yöntemi deneyin, ikinci iç içe fonksiyonunu kullanarak

var http = require('http'); 

var string = ''; 
var request = http.get("http://www.google.cz", function(response) {  
    response.on('data', function(response){ 
     string += response; 

    }); 
    response.on('end', function(string){ 
     console.log(string); 
    }); 
    }); 
+0

Bunu baştan ekle 'response.setEncoding ('utf8');' – user568109

+0

Bu bir cevap değil, sorunuza eklenmelidir. – justrhysism

+1

'Son' işleyiciye küçük bir düzeltme, işleyici işlevinin parametresi olmamalıdır, aksi halde yalnızca tanımlanmamış yazdırılır. Yani, response.on ('end', function() { console.log (string); }); – mihaic

0
var http = require('http'); 

var string = ''; 
var request = http.get("http://www.google.cz", function(response) {  
    response.on('data', function(response){ 
     string += response.toString(); 

    }); 
    response.on('end', function(string){ 
     console.log(string); 
    }); 
    }); 

Bu, kesinlikle çalışır. Onu kullanıyorum.

İlgili konular