Как передать данные из внешнего интерфейса React в внутренний узел? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь реализовать управление пользователями для моей программы. Я получаю всех сохраненных пользователей из таблицы MySQL и отправляю их в интерфейс реагирования. Теперь я хочу добавить нового пользователя в эту таблицу. У меня есть 4 текстовых поля в форме formik. Эта форма имеет свойство onsubmit. Onsubmit передает входные данные моей функции AddUser. Функция AddUser помещает переменные в массив. Моя проблема в том, что я получил сообщение об ошибке при попытке отправить данные с помощью axios на мой сервер.

import React from 'react';
import { UserTable } from './UserTable';
import { AddUserForm } from './AddUserForm';
import axios from 'axios';


export function UserSettings() {


  return (
    <div>
      <UserTable />
      <AddUserForm onSubmit={({personalid, firstname, lastname, password}) => {AddUser(personalid, firstname, lastname, password )}} />
    </div>
  );
}


// send new user to back-end
async function AddUser(personalid: string, firstname: string, lastname: string, password: string) {
  var user:string[] = [personalid, firstname, lastname, password]
  console.log('before axios',user)
  axios.post('http://localhost:3003/api/users/add', JSON.stringify(user))
    .then(response => {
      console.log('Data sent', response);
    })
    .catch(error => {
      console.log('Send data failed', error);
    })
  };
// get users from front-end
routes.get('/api/users/add', (req, res) => {
  const { data } = req.body;
  AddUserDb(data);
});
// Add new user to database
   export function AddUserDb(data:any): void {
        var user: string[] = JSON.parse(data)
        var personalidString: string = user[0]
        var personalid:number = +personalidString
        var firstname: string = user[1]
        var lastname: string = user[2]
        var password: string = user[3]
        connectMySQL.query('INSERT INTO users (personalid, firstname, lastname, password) VALUES (?, ?, ?, ?) ;',
        [personalid, firstname, lastname, password])
    };

Когда я отправляю в форму AddUser, я получаю эту ошибку: POST http://localhost:3003/api/users/add 500 (внутренняя ошибка сервера)

...