TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length

TypeError: Method Uint8Array.length called on incompatible receiver nodejs

本文关键字:调用 方法 Uint8Array length nodejs 不兼容 接收器 TypeError      更新时间:2023-09-26

我使用node.js和fs.writeFile()将JSON写入一个文件,大约1-2.5MB的数据,但有时会出现此错误;

TypeError: Method Uint8Array.length called on incompatible receiver [object Object]
    at Buffer.get length (native)
    at writeFd (fs.js:1207:45)
    at fs.js:1198:7
    at FSReqWrap.oncomplete (fs.js:82:15)

我不知道为什么、怎么做,也不知道如何修复。任何帮助都是感激的。

我在一个运行了大约两周的脚本上遇到了同样的问题,在AWS实例上以随机间隔将数据写入大约3.5万个文件。每个文件的最大容量为2 MB。

发生的情况是,当时可能打开了太多的文件指针,加上一些内存资源无法释放,因为我在实例的根文件夹中发现了一个正好为4.0GB的swapfile文件,这是实际的内存限制。因此,操作系统似乎因为这项繁重的任务而耗尽了资源。

适当的资源管理可能是解决您问题的办法!