将base64数组从react客户端发送到nodejs服务器

时间:2021-06-25 13:11:47

标签: node.js reactjs base64 resize

我正在尝试将一组调整大小的 base64 图像发送到我的 nodejs 服务器。

if (files) {
  let array: string[] = []
  for (let i = 0; i < files.length; i++) {
    Resizer.imageFileResizer(
      files[i],
      700,
      700,
      'auto',
      100,
      0,
      (uri: any) => {
        array.push(uri)
      },
      'base64'
    )
  }
  setImagesToSent(array)
  console.log('Console logging the array:', array)

  dispatch(productImageUpload({ id, array }))
}

当我对数组进行 console.log 时,我会得到如下信息:

 Console logging the array: 
[]
0: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArw
1: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArw
2: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaE
length: 3
__proto__: Array(0)

但是当我检查网络选项卡时,我看到一个空数组..

id: "60d57c21acedc20574f2dd2d", array: []
array: []
id: "60d57c21acedc20574f2dd2d"

另外,当我检查我的服务器控制台时,我没有在阵列中得到任何东西, 如果我尝试发送单个 base64 字符串,它可以工作并且服务器会接收它。 我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

如果 Resizer.imageFileResizer() 是一个承诺,你必须在将数组发送到服务器之前 await 函数。