2017-02-20 5 views
0

Привет Я пытаюсь прочитать файл и преобразовать его в данные с помощью метода .createReadStream, однако, когда я выполняю свою программу, он не дает мне никаких ошибок, но это console.log в терминал «undefined» Любой совет поможет спасибо!Не удается прочитать данные из потока в узле

//Readable Steams 
var fs = require("fs"); 
var data = ''; 

//Create a reable stream 
var readerStream = fs.createReadStream('input.txt'); 

readerStream.setEncoding('utf8'); 

//Handle events data, end, error 
readerStream.on('data', function(chunk){ 
    data += chunk; 
}); 

readerStream.on('end', function(data){ 
    console.log(data); 
}); 

readerStream.on('error', function(err){ 
    console.log(err.stack); 
}); 

console.log("program ended"); 
+0

Вы сделали некоторые [исследования] (http://codewinds.com/blog/2013-08-04-nodejs-readable-streams.html), прежде чем задавать этот вопрос ? –

ответ

1

Здесь:

readerStream.on('data', function(chunk){ 
    data += chunk; 
}); 

Вы добавлением к глобальной переменной «данных» вы определили на линии 3. Однако, когда вы находитесь в функции обратного вызова для «конечного» состояния, вы ожидаете его дайте вам также переменную, называемую «данные», которую вы затем запишите. Изменение обратного вызова для конца этого:

readerStream.on('end', function(){ 
    console.log(data); 
}); 
+0

, который сработал спасибо! – hjm

Смежные вопросы