Использование модуля запроса и передача тела к следующему запросу - PullRequest
0 голосов
/ 25 февраля 2020

Я использую запрос для получения изображения:

request(req.body.imageUrl, {encoding: null}, function(error, response, body) {

Затем я хочу использовать тело, чтобы перейти к API, который использует форму из нескольких частей, и отправить это изображение (которое сейчас в теле). Я не хочу записывать файл на диск, а затем снова читать поток с диска. Я в основном хочу ввести formData следующего запроса, используя буфер тела, но он не работает.

Итак, для параметров в следующем запросе у меня есть:

const options = {
                method: "POST",
                url: coreURL,
                headers: {
                    "Content-Type": "multipart/form-data"
                },
                formData : {
                    file : new Buffer.from(body,'binary')
                }
            };

И это не работает, если я записываю тело в файл fs.writeFileSync(fileName, body, 'binary');

, а затем читаю в опциях formData : { file : fs.createReadStream(fileName)}

, оно работает, но я не могу использовать диск, поэтому нужен альтернативный способ передачи тела в следующий пост в виде данных из нескольких частей.

Есть идеи?

1 Ответ

0 голосов
/ 25 февраля 2020

PO C:

let request = require('request');

request.post({
        url: "http://httpbin.org/anything",
        formData: {
            myfile: request.get("https://www.gravatar.com/avatar/f056d36f9e273fd4740ec8a5cea1348a"),
        }
    },
    function (err, req, body) {
        console.log(body);
    }
);

...