首页 > 解决方案 > 从反应客户端将base64数组发送到nodejs服务器

问题描述

我正在尝试将一组调整大小的 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 字符串它可以工作并且服务器接收它。我在这里做错了吗?

标签: node.jsreactjsbase64resize

解决方案


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


推荐阅读