ReferenceError: bytesRead is not defined
console.log(‘bytesRead’+bytesRead); ^ ReferenceError: bytesRead is not defined
var fs = require('fs');
fs.open(“content.txt”, ‘r’, function(err,fd){ if (err) { console.error(err); return; }
var buf = new Buffer(8);
fs.read(fd, buf, 0, 8, null, function(err,bytesRead,buffer){
if (err) {
console.error(err);
return;
}
});
console.log('bytesRead'+bytesRead);
console.log(buffer);
});
4 回复
楼主你这几行代码中有3个错误 1、fs.read是异步方法,程序可能先执行最后两个console.log方法,再执行fs.read方法 2、bytesRead是以回调函数的参数形式返回的,所以形参bytesRead无法在console.(‘bytesRead’+bytesRead)中使用,是局部变量 3、同样,buffer也是如此
var fs = require('fs');
fs.open("content.txt", 'r', function (err, fd) {
if (err) {
console.error(err);
return;
}
var buf = new Buffer(8);
fs.read(fd, buf, 0, 8, null, function (err, bytesRead, buffer) {
// 读取文件内容的回调函数,每读一块数据就执行一次此函数
// bytesRead 和 buffer 要在此处才能获取到
if (err) {
console.error(err);
return;
}
console.log('bytesRead' + bytesRead);
console.log(buffer);
});
});
@leizongmin 对哦,他的还有个问题了,fs.read方法只接受fd文件描述符,楼主这几行代码竟然有4个bug哦
@snoopy 木有。他只是下面这两行放错了位置,还有就是发帖是不会排版吧
console.log('bytesRead' + bytesRead);
console.log(buffer);