CNode

ReferenceError: bytesRead is not defined

Lluchuan100发布于14 年前最后回复14 年前4 回复4878 浏览0 收藏

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)

D
DoubleSpout#1·14 年前

楼主你这几行代码中有3个错误 1、fs.read是异步方法,程序可能先执行最后两个console.log方法,再执行fs.read方法 2、bytesRead是以回调函数的参数形式返回的,所以形参bytesRead无法在console.('bytesRead'+bytesRead)中使用,是局部变量 3、同样,buffer也是如此

L
leizongmin#2·14 年前
引用 DoubleSpout楼主你这几行代码中有3个错误 1、fs.read是异步方法,程序可能先执行最后两个console.log方法,再执行fs.read方法 2、bytesRead是以回调函数的参数形式返回的,所以...
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);
  });
});
L
leizongmin#4·14 年前
引用 DoubleSpout楼主你这几行代码中有3个错误 1、fs.read是异步方法,程序可能先执行最后两个console.log方法,再执行fs.read方法 2、bytesRead是以回调函数的参数形式返回的,所以...

@snoopy 木有。他只是下面这两行放错了位置,还有就是发帖是不会排版吧

console.log('bytesRead' + bytesRead);
console.log(buffer);
参与回复
登录后即可参与回复。登录