Javascript 节点js FileHandle读取方法引发无效参数错误

Javascript 节点js FileHandle读取方法引发无效参数错误,javascript,node.js,fs,Javascript,Node.js,Fs,根据节点文档,FileHandle.read()接受两种类型的参数:多个对象或一个对象。但是,当我传递对象时,我得到:TypeError[ERR\u INVALID\u ARG\u TYPE]:“buffer”参数必须是buffer、TypedArray或DataView的实例。收到对象的实例。 文档参考用于常规读取和“对象”读取 “Object”表示它是在v13.11.0中添加的。 我使用的是v14.4.0 下面是我正在使用的代码: fs_p.open(FILENAME, 'r')

根据节点文档,FileHandle.read()接受两种类型的参数:多个对象或一个对象。但是,当我传递对象时,我得到:
TypeError[ERR\u INVALID\u ARG\u TYPE]:“buffer”参数必须是buffer、TypedArray或DataView的实例。收到对象的实例。

文档参考用于常规读取和“对象”读取

“Object”表示它是在v13.11.0中添加的。 我使用的是v14.4.0

下面是我正在使用的代码:

    fs_p.open(FILENAME, 'r')
        .then((fileHandler) => {
            console.log(fileHandler);
            const dyn_head = Buffer.alloc(12);

            fileHandler.read({ buffer: dyn_head })
                .then((bytesRead, buffer) => {
                    console.log("Reading")
                }).catch((err) => {
                    console.log(err)
                });

        }).catch((err) => {
            console.log("err")
        });
fs\u p
是fs.promises

如果您想知道为什么要使用“object”read,我有时不会使用所有的参数,我想让代码变得干净


如果有帮助的话。我在Linux上。

所以,这种形式的
.read()
在节点v14中不起作用。我在调试器中跟踪到它,它直接指向以下代码:

为此:

fileHandler.read(dyn_head, 0, dyn_head.length, 0).then(({bytesRead, buffer}) => {
请注意,您还必须更改
.then()
,因为您的参数也有错误。这不是你写的问题的原因,因为你还没有到达那里,但你也必须解决这个问题



另外,我试着搜索关于这个问题的开放式bug报告,但没有找到,尽管我不确定我是否真的知道如何很好地搜索nodejs bug。也许你应该提交一份bug报告。

是的!天哪,谢谢你把手弄脏了。我还搜索了报告的bug,没有找到。我将检查如何报告它,并让团队知道。@branisha-如果您提交了一个bug,请在这里告诉我,以便我可以跟踪它的进度。我在前面提交了一个关于流问题的文件,很有意思的是,我跟踪了某人修复它的过程,通过测试验证它,然后将修复合并到中。虽然我能够创建bug修复程序,但我对Github或流程的理解还不够透彻,无法真正完成所有其他工作(除了编写和测试代码修复程序),我只是创建了一个。事实上,我从未对OpenProject进行过错误修复。这个不应该很复杂,所以我会尝试自己修复它,并尝试熟悉这个过程。干杯
fileHandler.read({ buffer: dyn_head }).then((bytesRead, buffer) => {
fileHandler.read(dyn_head, 0, dyn_head.length, 0).then(({bytesRead, buffer}) => {