我正在尝试使用名为“logger”的程序查看日志。运行时node logger
出现以下错误:
<Buffer 66 72 75 69 74 69 73 68 79 0a>
“logger”程序文件如下所示:
var fs = require('fs');
var file = fs.createReadStream("veg.log");
file.on('readable', function() {
var stream = null;
while(null !== (stream = file.read())) {
stream.toString();
console.log(stream);
}
});
有人知道是什么导致了错误吗?日志文件只是纯文本。为什么这会导致我的缓冲区出现错误?我如何找出是哪个缓冲区以及是什么导致它被错误访问?
答案1
规范的做法是使用缓冲区通过监听on('data')
事件来收集数据块。当流完成时,事件on('end')
将被发出,然后您就可以使用缓冲区执行某些操作。
此代码应该可以满足您的需要:
var fs = require('fs');
var buffer = '';
var file = fs.createReadStream("veg.log");
file.on('data', function(chunk) {
buffer += chunk;
});
file.on('end', function () {
console.log(buffer);
});
答案2
您需要为该createReadStream
函数指定一个缓冲区选项。如下所示:
var file = fs.createReadStream("veg.log", "utf8");