Mam strumień i muszę pobrać zawartość strumienia do łańcucha. Przesyłam strumień z Internetu za pomocą http.get. Piszę również strumień do pliku, ale nie chcę pisać pliku, a po tym otwierać ten sam plik i czytać z niego ... Więc muszę przekonwertować strumień na ciąg Dzięki za wszystkie porady ...Node.js - Jak uzyskać strumień do ciągu znaków
Odpowiedz
Zamiast drugiej funkcji zagnieżdżonych, spróbować metody toString() w strumieniu. Można go następnie wyprowadzić w dowolne miejsce, a także napisać metodę through(), która może przypisać ją do zmiennej lub użyć bezpośrednio w tej funkcji.
Ostatnia uwaga - metoda http.get() pobiera dwa parametry: adres URL i wywołanie zwrotne. Wymaga to dwóch parametrów i prawdopodobnie nic nie dostałeś, ponieważ był to pusty komunikat o błędzie.
Myślę, że to działa tylko dlatego, że http.get zwraca strumień rozszerzony, ogólnie Czytelne strumienie nie mieć metodę toString, która działa w ten sposób. –
Więc
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
}
Myślałam, że to będzie działać, ale nie
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);
});
});
Dodaj to na początku 'response.setEncoding ('utf8');' – user568109
To nie jest odpowiedź, należy ją dodać do pytania. – justrhysism
Niewielka korekta funkcji obsługi "końca" funkcji obsługi nie powinna zawierać żadnego parametru, w przeciwnym razie wydrukuje się niezdefiniowana. Tak więc, 'response.on ('end', function() { console.log (string); });' – mihaic
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);
});
});
To działa na pewno. Używam tego.
Twoje pytanie jest zbyt nieprecyzyjne. Więc chcesz przekonwertować przychodzące dane na ciąg lub zapisać go na dysku? Przykładowy kod może pomóc. –
możliwy duplikat [Pisanie strumienia node.js do zmiennej łańcuchowej] (http://stackoverflow.com/questions/10623798/writing-node-js-stream-int-a-tring-variable) –