В настоящее время я пытаюсь опубликовать данные формы (ax ios) из интерфейса пользователя в моем приложении express в базе данных mysql с помощью sequelize. Пока что я могу успешно выполнить запрос GET и отобразить его в интерфейсе пользователя. при настройке моего почтового запроса, я получаю ошибку 404 в консоли. Я довольно много читал, учитывая, что я очень новичок, и некоторые идеи, возможно, просто приходят мне в голову, но я не могу понять, почему я могу успешно сделать запрос GET, но не почтовый запрос, даже к консоли. Мне также интересно узнать, как лучше настроить конечную точку POST.
Вот мой код:
форма клиента
import React, { Component } from 'react'
import axios from 'axios';
export default class AddVisitorForm extends Component {
constructor(props) {
super(props)
this.state = {
lastName: '',
firstName: ''
}
}
onChange = (e) => {
this.setState({
[e.target.name]: e.target.value
})
};
handleSubmit = (e) => {
event.preventDefault();
console.log(this.state)
axios.post('http://localhost:8000/', this.state)
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
}
render() {
const { lastName, firstName } = this.state
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>
Last Name:
<input type="text" name="lastName" onChange={this.onChange } value={lastName} />
</label>
<label>
First Name:
<input type="text" name="firstName" onChange={this.onChange } value={firstName} />
</label>
<button type="submit">Add Guest</button>
</form>
</div>
)
}
};
продолжение модели
const sequelize = require('../database/sequelize');
const Sequelize = require("sequelize");
module.exports = sequelize.define('actor', {
lastName: {
field: 'last_name',
type: Sequelize.STRING
},
firstName: {
field: 'first_name',
type: Sequelize.STRING
},
}, {
timestamps: false
});
express app
const express = require("express");
const Actor = require('./models/Actor');
const cors = require('cors');
const app = express();
app.use(cors());
app.get('/actor', function(request, response) {
Actor.findAll().then((actor) => {
response.json(actor);
});
});
app.get('/actor/:id', function(request, response) {
let id = request.params.id;
Actor.findByPk(id).then((actor) => {
if (actor) {
response.json(actor);
} else {
response.status(404).send();
}
});
});
app.post('/addactor', function(request, response) {
Actor.create()
}
app.listen(8000);
вы заметите, что функция app.post является неполной, так как я не слишком уверен, как установить это с данными формы. я знаю, что это не самая сложная вещь в мире, чтобы понять, но я просто не могу получить запрос на публикацию для отображения в консоли, или как правильно настроить запрос на публикацию в приложении express для вставки данных в таблицу mysql. если бы кто-нибудь мог пролить свет, чтобы помочь мне вернуться на правильный путь, я был бы очень признателен.