Проблема с передачей данных от переднего конца реагирования и бэкэнда экспресс-узла (corse и endpoints) - PullRequest
0 голосов
/ 13 мая 2019

У меня проблема, когда при отправке данных формы я получаю сообщение об ошибке 404, в котором говорится, что моей конечной точки нет.(ОПЦИИ http://localhost:8080/home 404 (не найден). Пожалуйста, посмотрите здесь мой файл server.js. Я захочу отправить электронное письмо с моего экспресс-сервера узла, когда данные будут переданы на сервер.

const express = require('express');
const bodyParser = require('body-parser')
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));
const cors = require('cors')

app.use(cors())

app.get('/Home', function (req, res) {
 return res.send('home');
});

app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

app.listen(process.env.PORT || 8080);

и вот моя функция отправки

import React, { Component } from 'react';
import './App.css';
import PageOne from './Components/PageOne';
import PageTwo from './Components/PageTwo';
import PageThree from './Components/PageThree';
import PageFour from './Components/PageFour';
import PageFive from './Components/PageFive';
import PageSix from './Components/PageSix';
import {Button,  } from 'semantic-ui-react';
import axios from 'axios';


class App extends Component {


  constructor(props){
    super(props)
    this.state={
      generalDetails: "Text",
      fName: "Text",
      mName: "Text",
      LName: "Text",
      gender: "Text",

    }

    this.onContentChange = this.onContentChange.bind(this);
    this.onSubmitForm = this.onSubmitForm.bind(this);
  }




  render() {

    return (

      <div className="App">


      <PageOne handleChange={this.onContentChange}  />
      <PageTwo handleChange={this.onContentChange} />
      <PageThree handleChange={this.onContentChange} />
      <PageFour handleChange={this.onContentChange} />
      <PageFive handleChange={this.onContentChange}/>
      <PageSix handleChange={this.onContentChange} />

      <Button onClick={this.onSubmitForm} >
      Submit Form
      </Button>

    <br/>
    <br/>
      </div>
    );
  }



  onSubmitForm(e){
  e.preventDefault();

let data = {
         generalDetail: this.state.generalDetails,
         firstName: this.state.firstName,
         middleName: this.state.middleName,
         lastName: this.state.lastName
   };

   axios.post("http://localhost:8080/home", data).then(() => {
      //do something
      console.log('succesful!', this.state.generalDetails);
    }).catch(() => {
       console.log("Something went wrong");
   });


  console.log(
    //start of page one
    '* general Details: ' ,this.state.generalDetails,
    '* First Name: ', this.state.fName,
    '* Middle Name: ', this.state.mName,
    '* Last Name: ', this.state.lName,


  );
}
  //end

  onContentChange(fieldname, data){

    console.log('On Content Change', data);

     this.setState({
       [fieldname]: data

    });
  }



}

1 Ответ

1 голос
/ 13 мая 2019

Вы делаете axios.post("http://localhost:8080/home"

Но ваш экспресс-сервер ищет запрос на получение. Измените это на app.post

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