从ReactJS表单向MySQL数据库投递数据的过程可以分为以下几个步骤:
下面是一个示例代码,演示了如何从ReactJS表单向MySQL数据库投递数据:
前端代码(ReactJS):
import React, { useState } from 'react';
const FormComponent = () => {
const [formData, setFormData] = useState({
name: '',
email: '',
message: ''
});
const handleInputChange = (event) => {
const { name, value } = event.target;
setFormData({ ...formData, [name]: value });
};
const handleSubmit = (event) => {
event.preventDefault();
fetch('/api/submit', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
})
.then(response => response.json())
.then(data => {
console.log('Data submitted successfully:', data);
// 处理提交成功后的逻辑
})
.catch(error => {
console.error('Error submitting data:', error);
// 处理提交失败后的逻辑
});
};
return (
<form onSubmit={handleSubmit}>
<label>
Name:
<input type="text" name="name" value={formData.name} onChange={handleInputChange} />
</label>
<br />
<label>
Email:
<input type="email" name="email" value={formData.email} onChange={handleInputChange} />
</label>
<br />
<label>
Message:
<textarea name="message" value={formData.message} onChange={handleInputChange} />
</label>
<br />
<button type="submit">Submit</button>
</form>
);
};
export default FormComponent;
后端代码(Node.js + Express + MySQL):
const express = require('express');
const mysql = require('mysql');
const app = express();
app.use(express.json());
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
connection.connect((error) => {
if (error) {
console.error('Error connecting to MySQL:', error);
} else {
console.log('Connected to MySQL database');
}
});
app.post('/api/submit', (req, res) => {
const { name, email, message } = req.body;
const sql = 'INSERT INTO your_table (name, email, message) VALUES (?, ?, ?)';
connection.query(sql, [name, email, message], (error, results) => {
if (error) {
console.error('Error inserting data into MySQL:', error);
res.status(500).json({ error: 'Failed to submit data' });
} else {
console.log('Data submitted successfully');
res.json({ success: true });
}
});
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
上述代码中,前端部分使用ReactJS创建了一个表单组件,通过fetch函数将表单数据发送给后端服务器的/api/submit
接口。后端部分使用Express框架接收POST请求,并将表单数据插入到MySQL数据库中。
请注意,上述代码仅为示例,实际应用中需要根据具体情况进行适当的修改和安全性考虑,例如数据验证、防止SQL注入等。此外,还需要确保前端和后端服务器能够正确地进行通信,例如前端代码中的请求URL需要根据实际部署情况进行调整。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云数据库MySQL版、腾讯云API网关等。您可以访问腾讯云官网(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。
领取专属 10元无门槛券
手把手带您无忧上云