Реагировать, узел js, mongoDB - Как сделать сообщение, положить, удалить с FormData? - PullRequest
0 голосов
/ 13 сентября 2018

Как создать почтовый сервис с формданными?

Я отправил данные от Axios. Однако значение 'req.body.title' на узле-экспресс-сервере пусто. Итак, теперь я отправляю fetch в следующем формате. Но мне нужно загрузить файл на сервер, поэтому я хочу отправить его с помощью formData.

let bodys = 'title=a1&contents=b'
fetch("http://localhost:5000/test", {
            method : 'post',
            headers : {
                'Content-type' : 'application/x-www-form-urlencoded; charset=UTF-8'
            },
            body: bodys
        })
        .then(function(response){
            console.log('Request Succeded ', response);
        })
        .catch(function (error){
            console.log('Failed ', error)
        })

Я написал новые данные, используя append with new FormData (), Я проверил, что FormData содержит значение в React. Однако сервер узла-экспресса не вошел в тело.

пожалуйста, дайте мне знать, что делать ...

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Попробуйте отправить объект FormData вместо необработанной строки в качестве тела запроса.

const bodys = new FormData();

bodys.append('title', 'a1');
bodys.append('contents', 'b');

Данные этой формы будут доступны в файле request.body на сервере express.js.

Редактировать: для анализа FormData в express.js вам необходимо промежуточное программное обеспечение, например multer

const upload = require('multer');

app.use('/', upload.any(), yourRouteHandler);
0 голосов
/ 13 сентября 2018

Вы отправляете просто строку, поэтому

Вы можете получить доступ к своему телу, как показано ниже

  let bodys = 'title=a1&contents=b'
 console.log(req.body); //will print title and contents as you are sending

Если вы хотите получить доступ к заголовку и содержанию по отдельности, тогда вы должны отправить данные как объект

  const bodys = {“title”: “a1”, “contents”: “b”}
  console.log(“title”, req.body.title); //will print a1
  console.log(“contents”, req.body.contents); //will print b

Проверьте эту тему для более подробной информации https://github.com/github/fetch/issues/263

...