получена проблема значения, пустой объект Axios / Post / bdd ReactJS - PullRequest
0 голосов
/ 08 апреля 2020

Я хотел бы объяснить мою проблему дня.

в следующем коде, я пытаюсь опубликовать 2 данных, мой сервер получает его правильно, к сожалению, я получаю 2 пустых объекта

Я постараюсь опубликовать любую информацию, которая может вам понадобиться, я пытался сделать чистый код

Как я могу решить эту проблему?

import React, { Component } from 'react';
import axios from 'axios';

export default class SignUpP2 extends Component {

constructor(props) {
    super(props)

    this.onChangeprenomNom = this.onChangeprenomNom.bind(this);
    this.onChangeexpiration = this.onChangeexpiration.bind(this);
    this.onSubmit = this.onSubmit.bind(this);

    this.state = {
      prenomNom: '',
      expiration: '',
    }
}

onChangeprenomNom(e) {
    this.setState({ prenomNom: e.target.value })
}
onChangeexpiration(e) {
  this.setState({ expiration: e.target.value })
 }
  onSubmit(e) {
    e.preventDefault()
    const prenomNom = {
      prenomNom  : this.state.prenomNom,
    };
    const expiration = {
      expiration  : this.state.expiration,
    };

    axios.post('https://fakeinfo.fr/api/user',{ expiration , prenomNom})
        .then((res) => {
            console.log(res.data)
        }).catch((error) => {
            console.log(error)
        });

    this.setState({ prenomNom: '', expiration:'', })
}
 render() {
     return (
        <div >
            <form onSubmit={this.onSubmit}>
              <div>

                <div>
                    <input
                     type="text" 
                     value={this.state.prenomNom} 
                     onChange={this.onChangeprenomNom} 
                     /> 
                </div>
                <div>
                    <input
                     type="text" 
                     value={this.state.expiration} 
                     onChange={this.onChangeexpiration} 
                     />       
                </div>
              </div>
                <div>
                 <button className="button-create-account"  type="submit" value="Create                                                        User" >
     GOO
     </button>
                </div>
            </form>
        </div>
    )
  }
}

Вот мои маршруты,

app.post('/api/user', (req, res, ) => {
const formData = req.body;
console.log(req.body)

connection.query('INSERT INTO user SET ?', formData, (err, results) => {

if (err) {
  console.log(err);
  res.status(500).send("Erreur lors de la sauvegarde d'un employé");
} else {
  res.sendStatus(200);
}
 });
});

и вот результат мой BDD

{
    "id": 38,
    "prenomNom": "[object Object]",
    "expiration": "[object Object]",
}

1 Ответ

1 голос
/ 08 апреля 2020

Ваш груз неправильный, вот как вы должны это сделать:

const payload = { 
  prenomNom  : this.state.prenomNom,
  expiration  : this.state.expiration
}

axios.post('https://fakeinfo.fr/api/user', payload)
...