как загрузить файл из multer в другой API

#node.js

#node.js

Вопрос:

У меня есть 2 отдельных API-интерфейса NodeJS, которые используют multer для сохранения файла. Я могу получить файл в 1-м 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 ... >
}
 

Теперь я хочу отправить эти данные во 2-й 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

Любой совет для меня?

Ответ №1:

Вы получаете эту ошибку, потому fileData что она не определена при выполнении этой строки. Без остальной части вашего кода я не могу определить точную причину. При передаче информации из одного API в другой наилучшим подходом было бы использование потоков. Таким образом, вам не нужно ждать, пока все данные поступят в ваше приложение, прежде чем отправлять их по назначению.

Комментарии:

1. Отмечено. Спасибо