首页 > 解决方案 > 如何将文件从 multer 上传到另一个 API

问题描述

我有 2 个单独的 NodeJS API,它们使用 multer 来保存文件。我能够在第一个 API 中接收文件,如下所示:

{ fieldname: 'imageCdn',
  originalname: 'hello.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  buffer:  <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff db 00 43 00 06 04 05 06 05 04 06 06 05 06 07 07 06 08 0a 10 0a 0a 09 09 0a 14 0e 0f 0c ... >
}

现在我想将此数据发送到第二个 API,如下所示:

const FormData = require('form-data');
service.saveImage = async (fileData) => {
  try {
    let payload = new FormData()
    payload.append('imageFile', fileData[0]);
   
    const data = await axios.post(`${app.Config.ApiUrl}/image/addImage`, payload, {headers: payload.getHeaders()});
    console.log('list:', data)

  } catch (err) {
    log.error(err)
    throw new Error(err);
  }
}

错误: Cannot read property '0' of undefined

对我有什么建议吗?

标签: node.js

解决方案


您收到该错误是因为fileData在执行该行时未定义。如果没有您的其余代码,我无法确定确切的原因。将信息从一个 API 传递到另一个 API 时,最好的方法是使用。这样,您无需等待所有数据都到达您的应用程序,然后再将其发送到目的地。


推荐阅读