Обязательная часть запроса 'config' отсутствует node-fetch - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь преобразовать эту команду curl в запрос выборки узла.

curl -X POST    http://localhost:7200/test    -H 'Content-Type: multipart/form-data'    -F "config=@test.ttl"

То, что у меня пока есть, отправляет файл в виде formdata через запрос POST, как запрос curl. Однако я не уверен, как включить config=@test.ttl в запрос. Я попытался добавить его к объекту заголовков, и я получил ошибки недопустимых символов, поэтому я не уверен, куда его поместить. Когда я запускаю запрос так, как он ниже. Я возвращаюсь 'Required request part 'config' is not present', поэтому обязательно нужно куда-то положить config.

const fetch = require("node-fetch");

const FormData = require('form-data');
const form = new FormData();  
form.append('test.ttl', 1);

fetch('http://localhost:7200/test', { 
        method: 'POST', 
        body: form 
    })
        .then(res => res.json())
        .then(json => console.log(json));

Спасибо

1 Ответ

0 голосов
/ 27 марта 2020

Спасибо @ bato3 !

Создание readStream для данных в файле сработало. Публикация рабочего кода ниже, если кто-то захочет ссылаться на него в будущем.

const fetch = require("node-fetch");
const fs = require('fs');
const FormData = require('form-data');

const form = new FormData();

form.append('config', fs.createReadStream('test.ttl'));

fetch('http://localhost:7200/test', { 
    method: 'POST', 
    body: form 
})
    .then(res => res.text())
    .then(body => console.log(body));
...