如何处理 nodejs 中的数组缓冲区分配失败?
2017-08-28
46502
我已成功在 nodejs 中上传图片,并且为此使用了 multer。 但有时会出现“数组缓冲区分配失败”错误,我想处理该错误。我尝试将代码保留在 try-catch 块中,尽管它仍然会抛出错误,但我不知道如何处理此错误或如何避免该错误? 能够上传文件,但当我尝试更改高度和宽度并制作新图像时,它会抛出错误
Uncaught RangeError: Array buffer allocation failed
at Buffer.Uint8Array (native)
at FastBuffer (buffer.js:8:1)
或
Array buffer allocation failed
at Buffer.Uint8Array (native)
at FastBuffer (buffer.js:8:1)
RangeError: Array buffer allocation failed
at new Uint8Array (native)
at Object.getData (/Burg_nodejs/node_modules/jpeg-js/lib/decoder.js:797:18)
at Object.copyToImageData (/Burg_nodejs/node_modules/jpeg-js/lib/decoder.js:913:23)
at Object.decode (/Burg_nodejs/node_modules/jpeg-js/lib/decoder.js:985:11)
at Jimp.parseBitmap (/Burg_nodejs/node_modules/jimp/index.js:310:36)
at /Burg_nodejs/node_modules/jimp/index.js:202:29
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:446:3)
任何建议都会更有帮助
3个回答
看起来您没有足够的内存来执行大尺寸上传
Amir
2018-10-02
我们团队中有人遇到过这个问题,所以我们猜测是他的机器出了问题。 原来他安装了 node x86。 安装 node x64 并重建所有 node_modules 后,错误就消失了。
JJP
2022-03-31
jpeg-js 使用的内存不足以进行图像处理,
- 可能的解决方案是调整图片大小(imagemagick/whatever)
IvanM
2018-10-12