2017-02-20 72 views
0

嗨我正在尝试读取文件并通过使用.createReadStream方法转换为数据,但是,当我执行我的程序时,它不会给我任何错误,但它console.log进入终端'未定义'任何意见将有助于感谢!无法从节点中的流读取数据

//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