我正在使用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)
我不知道为什么或如何,也不知道如何解决它。任何帮助表示赞赏。
答案 0 :(得分:1)
我在一个运行了大约两周的脚本上遇到了同样的问题,在AWS实例上以随机间隔将数据写入大约3.5万个文件。每个文件最大为2 MB。
那里发生的事情是当时打开的文件指针太多了,加上一些内存资源无法释放,因为我在我的实例的根文件夹中发现了一个swapfile
文件,正好是4.0 GB,这是实际的内存限制。因此,由于这种繁重的举动,操作系统似乎耗尽了资源。
适当的资源管理可能是您问题的解决方案!