“ path”参数必须是字符串类型,或者是Buffer或URL的实例。收到对象的实例

时间:2020-07-29 15:15:23

标签: node.js base64 filereader arraybuffer

我正在使用发布请求将图像文件(转换为Uint8Array)发送到服务器,我如何在服务器端读取该图像文件并将其转换为服务器端的'base64'字符串。有人可以帮帮我吗 ?我正在使用nodejs作为后端。

我的代码段如下

let image = null
 document.getElementById('img').addEventListener('change', (event) => {
   const img = event.target.files[0]
  try {
    let file = new FileReader()
    file.readAsArrayBuffer(img)
    file.addEventListener("load", () => {       
      this.image = new Uint8Array(file.result)   
    })
  } catch (error) {
      console.log(error)
  }
})

var data = {image: this.image}

axios.post('http:localhost:8080/post/upload', data, {headers: {'Content-type': 'application/json'}})
.then((response) => {
   if(response) {
     console.log(response.data)
   }
}).catch((err) => {
     console.log(err)
})

下面是我的后端代码段,当我使用上述代码发出请求时,出现以下错误=>(节点:22468)UnhandledPromiseRejectionWarning:TypeError [ERR_INVALID_ARG_TYPE]:“ path”参数必须为字符串类型或缓冲区或URL。收到对象的实例

private_router.post('/post/upload', async(req: express.Request, res: 
express.Response) => {
  let img = null
  fs.readFile(req.body.image, (err, data) => {
    if(err) console.log(err)
    else img = data
  })
  if(img != null) {
    console.log(img)
    return res.status(200).json({message: 'posted'})
  }
   res.status(200).json({message: 'posted'})

  })

0 个答案:

没有答案