Я пытаюсь реализовать управление пользователями для моей программы. Я получаю всех сохраненных пользователей из таблицы 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 (внутренняя ошибка сервера)