Реагируйте с express сервером, давая мне 400 на почту - PullRequest
0 голосов
/ 21 марта 2020

Не могу понять, почему я продолжаю получать 400, это сводит меня с ума.

На моем express сервере:

const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.post('/api/messages', (req, res) => {
  console.log(req.body.body)
  res.header('Content-Type', 'application/json');
  client.messages
    .create({
      from: process.env.TWILIO_PHONE_NUMBER,
      to: '13105551212',
      body: req.body.body
    })
    .then(() => {
      res.send(JSON.stringify({ success: true }));
    })
    .catch(err => {
      console.log(err);
      res.send(JSON.stringify({ success: false }));
    });
});

Это в каталоге root и Я запускаю его через порт 5000. localhost: 5000 Я просто пытаюсь проверить, не попал ли я даже на сервер.

В подкаталоге client У меня есть папка реагирующей сборки, куда я загружаю свой интерфейс.
Там я запускаю этот метод: this.state.method = 'привет, это тест';

export function twilioSend(event) {
  event.preventDefault();
  this.setState({ submitting: true });
  fetch('/api/messages', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(this.state.message)
  })
  .then(res => res.text())          // convert to plain text
.then(text => console.log(text))

}

В моей сетевой вкладке:

Request URL: http://localhost:5000/api/messages

Ошибка, которую я получаю:

SyntaxError: Unexpected token " in JSON at position 0

Есть идеи, что я делаю не так?

1 Ответ

1 голос
/ 21 марта 2020

На вашем сервере отправьте как объект:

res.send({ success: true });

И

res.send({ success: false });

В вашем интерфейсе получите:

fetch('/api/messages', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ message: this.state.message })
})
.then(res => res.json())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...