Невозможно передать данные из HTTP-запроса на контроллер javascript (expressjs) - PullRequest
1 голос
/ 28 мая 2020

Я использую реакцию на веб-интерфейсе и expressjs на серверной части. Создание простого почтового запроса и передача данных json в серверную часть через интерфейс. Запрос состоит из body {title: "some title", content: "some content"}. В конце, если я console.log (req.body), я получаю пустой объект. Также, если я использую почтальона, он работает правильно. Код внешнего интерфейса:

fetch(url, {
      method: method,
      header: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        title: postData.title,
        content: postData.content
      })
    })

Код BackEnd:

const title = req.body.title;
  const content = req.body.content;
  console.log(req);
  res.status(201).json({
    message: 'created nicely',
    post: {
      _id: '78',
      title: title,
      content: content,
      creator: { name: 'mera naam' },
      createdAt: new Date()
    }
  });

1 Ответ

2 голосов
/ 28 мая 2020

Свойство header должно иметь вид headers.

fetch(url, {
  method: method,
  headers: {
  //  ^^^
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: postData.title,
    content: postData.content,
  }),
})

Поскольку заголовок Content-Type не отправляется из-за орфографической ошибки, body-parser или express.json() (в зависимости от того, что вы используете) не анализирует тело запроса.

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