отправка req.body из React в Express, затем публикация в api - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь отправить тело формы из React в Express, а затем отправить его в API. Кажется, все работает, получая тело от React до Express, но я не уверен, как потом отправить это в API. GET-запросы прекрасно работают из API, просто возвращая данные в POST обратно в API, с которым у меня возникли проблемы. Я также использую AXIOS. Любые советы или ссылки на учебники приветствуются.

SiteAdd.js - получает данные формы из состояния и выбирает маршрут с сервера Express.

       handleSubmit = e => {
    e.preventDefault();
    //deconstruct
    const { id, siteRef, addrType, addr1, addr2, city, county, postCode, country } = this.state;
    const site = {
      id,
      siteRef,
      addrType,
      addr1,
      addr2,
      city,
      county,
      postCode,
      country
    };

   fetch('/api/siteAdd', site)
      .then(() => console.log('Site Created'))
      .catch(err => {
        console.error(err);
      });
  };

server.js - сервер Express

       var express = require('express')
    var http = require('http')
    //var bodyParser = require('body-parser')
    var cors = require('cors')
    const path = require('path')
    var app = express()
    var axios = require('axios')

    app.use(express.urlencoded({ extended: false }));
    app.use(express.json());
    app.use(cors())

    //get
    //working
    app.get('/api/site', (req, res, next) => {
        axios.get('https://****/api/site/')
        .then(response => res.json(response.data))
            .catch(err => next(err));
    })

let sites = [];
app.post('/api/siteAdd', function (req, res) {
    const newSite = {
        id: req.body.id,
        siteRef: req.body.siteRef,
        addrType: req.body.addrType,
        addr1: req.body.addr1,
        addr2: req.body.addr2,
        city: req.body.city,
        county: req.body.county,
        postCode: req.body.postCode,
        country: req.body.country,
    };

    sites.push(newSite);
    console.log(sites);
});

1 Ответ

0 голосов
/ 03 октября 2019

Попробуйте проверить журналы ошибок на сервере, который возвращает код состояния 500. Что-то не так происходит на сервере, где вы пытаетесь разместить данные.

...