как исправить синтаксическую ошибку токен 0 / позиция 0 ReactJS - PullRequest
0 голосов
/ 07 апреля 2020

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

Сегодня у меня есть забавная проблема

в следующем коде, сообщение работает правильно, я получаю их в моем BDD

проблема в том, что я получаю ошибку " alert ('Erreur lors de l \' ajout ') "и что" SyntaxError: неожиданный токен O в JSON в позиции 0 "

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

const entrypoint = process.env.REACT_APP_API_ENTRYPOINT + '/api';

class SignUp extends Component {

constructor(props) {
  super(props);
  this.state = {
    prenomNom:'',
};
}

handleChange = (e) => {
  this.setState({[e.target.name]: e.target.value});
}

вот мой POST

postbackendCarteBleu = async (ev) => {
  ev.preventDefault();
  const config = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ ...this.state,}),

  };
  const url = entrypoint + "/user";

  fetch(url, config)
  .then(res => res.json())
   .then(res => {
     if (res.error) {
       alert(res.error);
       console.log(res.error)
     } else {
       alert(`ajouté avec l'ID ${res}!`);
       console.log(res.error)
     }
   }).catch(e => {
     console.error(e);
     alert('Erreur lors de l\'ajout');
   });
}

здесь вы можете увидеть мою форму и мою кнопку для сообщения

render() {
    return (
  <div> 
   <form method="post" onSubmit={(ev) => this.postbackendCarteBleu(ev)}>
   <input
     id="prenomNom"
     onChange={this.handleChange}
     value={this.state.prenomNom}
     className="form-input-name"
     name="prenomNom"
     placeholder="Jason Binouse"
     required
  />
   <button type="submit" value="Envoyer">
    POST
    </button>
</form>
</div>

export default SignUpP2;

И вот конечно если мои маршруты для BDD

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");
} else {
  // Si tout s'est bien passé, on envoie un statut "ok".
  res.sendStatus(200);
}
 });
 });
...