如何处理nodejs中的数组缓冲区分配失败?

时间:2017-08-28 13:23:00

标签: arrays node.js image buffer

我已经成功上传了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)

任何建议都会更有帮助

2 个答案:

答案 0 :(得分:2)

好像您没有足够的内存来执行大尺寸上传

答案 1 :(得分:0)

jpeg-js 使用不足的内存进行图像处理,

-可能的解决方案是调整图片大小(imagemagick /无论如何)