Невозможно получить данные с помощью fetch () с клиента React на сервер Nodejs - PullRequest
0 голосов
/ 02 сентября 2018

Итак, это мой клиент:

 handleSubmit(event) {    event.preventDefault();    alert(`starting to stream ${this.state.value} at ${this.state.volume}`)    fetch('/emitter', {
     method: 'post',
     body: JSON.stringify({
     value: this.state.value,
     volume: this.state.volume
      }),
      headers: {"Content-Type": "application/json"}
    });
    alert(`${this.state.value} and ${this.state.volume} sent to server`)    };

а это мой сервер:

app.use(express.static(__dirname + '/build'));
app.all('*', function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  next();
});

app.use(bodyParser.urlencoded({
  extended: true
}));

app.post('/emitter', function (req, res) {
  console.log(req.body)
});

Я просто пытаюсь отправить данные из формы ввода на сервер. Почему я получаю пустой {}, когда я получаю req.body на сервере?

1 Ответ

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

EDIT:

Для справки, это ответ: https://github.com/github/fetch/issues/323#issuecomment-277510957

app.use(bodyParser.json());

необходимо добавить после или до:

 app.use(bodyParser.urlencoded({
  extended: true
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...