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

时间:2016-05-18 13:55:42

标签: javascript node.js

我正在使用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)

我不知道为什么或如何,也不知道如何解决它。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

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

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

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