TypeError:使用Node.js fs.read()的错误参数

时间:2014-04-28 12:12:22

标签: javascript node.js filesystems

我试图让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)

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

您应首先检查fs.open()是否成功。最有可能设置err并且handle设置为未定义,导致" Bad Argument"错误。