【发布时间】:2021-08-24 21:00:01
【问题描述】:
嘿伙计们,基本上我是在使用 axios 发出一个 http 请求来获取图像作为“arraybuffer”。收到图像后,我将其传递给Sharp,但出现此错误。
TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
这是我的代码
let res = await axios({ url, responseType: "arraybuffer" })
const data = await sharp(res.data).resize({ width: 100, height: 100 }).toBuffer()
const fileName = Md5.hashStr(entityId)
requirements.Md5 = fileName
requirements.fileName = fileName + fileExtension
requirements.fileData = res.data
return requirements;
出于某种原因,尖锐说我没有将 ArrayBuffer 作为输入。但是 axios 的响应似乎是 ArrayBuffer 类型。
有什么想法吗?谢谢
更新/回答 所以基本上我只需要添加一行
let res = await axios({ url, responseType: "arraybuffer" })
const buffer = Buffer.from(requirements.fileData, 'binary'); <---
const data = await sharp(res.data).resize({ width: 100, height: 100 }).toBuffer()
const fileName = Md5.hashStr(entityId)
requirements.Md5 = fileName
requirements.fileName = fileName + fileExtension
requirements.fileData = res.data
return requirements;
【问题讨论】:
-
请使用答案(下面)而不是把答案放在问题中:)