I am a beginner.I am trying to implement a POST request from React.js in a simple form, but I cannot figure out how to send POST request to database. I guess I need <form action="URL"> as well. Any help will be appreciated. Below is the code from React.js(frontend)
import GameTestResult from './GameTestResult'; export default function App() { const[data, setData] = useState([]); const [formData, setFormData] = useState(""); useEffect (() => { fetch('http://localhost:3000/game') .then(res => res.json()) .then(result => setData(result.rows)) .catch(err => console.log("error")) },[]); const handleChange = event => { setFormData(event.target.value) } const eventHandler = event => { event.preventDefault(); setFormData(""); } return ( <div className="App"> <form method="post" onSubmit = {eventHandler}> <input value = {formData} onChange = {handleChange} /> <button type="submit">click</button> </form> {data && data.map((element, index)=>( <GameTestResult name = {element.name} key={element.index} /> ))} </div> ); } here is the code from express.js(backend)
var router = express.Router(); const pool = require("../config.js"); var cors = require('cors'); router.get("/game", cors(), (req, res) => { pool .query("SELECT * FROM game") .then((data) => res.json(data)) .catch((e) => { res.sendStatus(404), console.log(e); }); }); router.post("/game", (req, res) => { const { name } = req.body; pool .query('INSERT INTO game(name) values($1);', [name]) .then(data => res.status(201).json(data)) .catch(e => res.sendStatus(404)); }); module.exports = router;