TypeError:使用Node.js fs.read()的参数不正确

TypeError: Bad argument using Node.js fs.read()

本文关键字:参数 不正确 read fs 使用 Node js TypeError      更新时间:2023-09-26

我正试图让fs.read()工作,但遇到了一些问题。这是我的fread.js脚本:

var fs = require('fs');
fs.open('test.txt', 'r', function (err, handle) {
    var f = handle;
    var b = new Buffer(100000);
    fs.read(f, b, 0, 100000, null, function (err, bytesRead) {
        console.log(b.toSting("utf8", 0, bytesRead));
        fs.close(f);
    });
});

为什么我在运行它时会出现以下TypeError: Bad Argument错误?

$ node fread.js 
fs.js:457
  binding.read(fd, buffer, offset, length, position, wrapper);
          ^
TypeError: Bad argument
    at Object.fs.read (fs.js:457:11)
    at /home/max/dev/livelessons/fread.js:8:5
    at Object.oncomplete (fs.js:107:15)

问题是我给了它错误的文件名。test.txt应该是text.txt。Doh!

您应该首先检查fs.open()是否成功。很可能err被设置,而handle被设置为未定义,从而导致"Bad Argument"错误。