求教,formData 错误 [Symbol(state)]: [ { name: 'file', value: '[object Object]' } ] 如何解决?

作者站长头像
站长
· 阅读数 15

我在将旧代码同步到新代码,代码如下:

let formData = new FormData()
let imgFiles = fs.createReadStream(chunk)
formData.append('file', imgFiles)
console.log(formData)
let len = await new Promise((resolve, reject) => {
     return formData.getLength((err, length) => (err ? reject(err) : resolve(length)))
})

但发现了如下问题,旧代码打印 formData 结果如下:

FormData {
  _overheadLength: 162,
  _valueLength: 0,
  _valuesToMeasure: [
    ReadStream {
      fd: null,
      path: 'C:\\Users\\Dell\\Desktop\\53a37365f32c3af2ccd8d311ca73376a/1.dcdx',
      flags: 'r',
      mode: 438,
      start: undefined,
      end: Infinity,
      pos: undefined,
      bytesRead: 0,
    ……
}

但是新代码打印 formData 结果如下:

formData _FormData [FormData] {
  [Symbol(state)]: [ { name: 'file', value: '[object Object]' } ]
}
(node:15192) UnhandledPromiseRejectionWarning: TypeError: formData.getLength is not a function
……

请问有什么可能会触发我这个错误呢?还望指点,谢谢!


我尝试通过 JSON.stringify 将内容转为 json 字符串

`formData.append('file', JSON.stringify(imgFiles))`

得到了接近正确的结果,如下:

求教,formData 错误  [Symbol(state)]: [ { name: 'file', value: '[object Object]' } ] 如何解决?

但正确的结果应该是:

求教,formData 错误  [Symbol(state)]: [ { name: 'file', value: '[object Object]' } ] 如何解决?

回复
1个回答
avatar
test
2024-06-23

原因找到了,自己少引用了 const FormData = require('form-data')

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容