Метод POST отправляет чистую строку. РЕАКТ -> API - PullRequest
0 голосов
/ 16 января 2020

У меня есть компонент для SQL запросов, и когда я хочу отправить любой запрос на серверную часть API-сервера cra sh down, потому что MySQL видит пустую строку как мой запрос. Мой бэкэнд работает хорошо, потому что когда я тестирую его из postman.exe , все в порядке.
Мой компонент с отправкой находится на localhost: 3000 и api на localhost: 5000 .
Вот мой метод отправки:

submitData= () =>{
        const { queryFromEditor } = this.props;

        let queryFromEditorString = queryFromEditor.join(' ');
        console.log(queryFromEditorString);

       let xhr = new XMLHttpRequest();
        xhr.open("POST", 'http://localhost:5000/api/query', true);
        xhr.setRequestHeader('Content-Type', 'application/json');
        xhr.send(JSON.stringify({
            "value": queryFromEditorString,
        }));

    }

Вот мой метод сообщения

app.post('/api/query', (req, res) => {
  console.log(`\n  Query input : ${JSON.stringify(req.body)}`);
  let queryInput = JSON.stringify(Object.values(req.body));

  queryInput = queryInput.slice(1,-1);// Opravit, aby to nevypadalo tak blbě
  queryInput = queryInput.slice(1,-1);

  let queryOutput;
  db.query(queryInput, (err, result) =>{
    if(err) throw err+' : '+queryInput;

    queryOutput = result;
    console.log("\nQuery output "+ JSON.stringify(queryOutput));
    res.json(queryOutput);
  });
});

1 Ответ

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

Проблема была на сервере.
Простое исправление: добавьте " app.use (express. json ()); "

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