Как передать текст в отправку фотографии?

В Node.js для отправки текста вместе с фотографией можно использовать различные подходы и библиотеки.

Один из самых популярных и простых способов - это использование библиотеки axios для выполнения HTTP-запросов и отправки данных на удаленный сервер или API.

Вот пример кода, который демонстрирует, как отправить фотографию с текстовым полем в запросе с использованием axios:

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

async function sendPhotoWithText() {
  try {
    const url = 'https://api.example.com/upload';
    const data = new FormData();

    // Добавляем текстовое поле
    data.append('text', 'Пример текста');

    // Читаем фотографию с диска
    const photo = fs.readFileSync('photo.jpg');

    // Добавляем фотографию в FormData
    data.append('photo', photo, 'photo.jpg');

    // Отправляем POST-запрос на URL с данными FormData
    const response = await axios.post(url, data, {
      headers: {
        'Content-Type': `multipart/form-data; boundary=${data._boundary}`,
      },
    });

    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
}

sendPhotoWithText();

В этом примере мы создаем экземпляр FormData и добавляем текстовое поле и фотографию в него. Затем мы отправляем POST-запрос на указанный URL, передавая данные FormData в теле запроса.

Для работы с FormData мы используем модуль form-data. А для чтения фотографии с диска используем модуль fs.

Обратите внимание, что в примере мы передаем фотографию с расширением '.jpg', но вы можете заменить это на имя и расширение вашей конкретной фотографии.

Для этого примера также требуется установить библиотеки axios, form-data и fs через npm:

npm install axios form-data fs

Это только один из возможных способов отправить фотографию с текстовым полем в Node.js. В зависимости от конкретных требований вашего проекта или API, могут быть и другие методы и библиотеки, которые можно использовать.