运用node.js和Vue新建一个vue页面,输入学生信息,使用axios调用后端接口,能在student表中新增一条记录
时间: 2024-03-24 21:36:20 浏览: 108
好的,我可以给出一个简单的示例来实现你的需求。
首先,你需要在后端使用 Node.js 和 Express 框架创建一个 API 接口,来接收前端传递的学生信息,并将其插入到 MySQL 数据库中。以下是一个示例代码:
```javascript
const express = require('express');
const mysql = require('mysql');
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'yourpassword',
database: 'yourdatabase'
});
app.post('/api/add-student', (req, res) => {
const { student_number, name, college, age, gender } = req.body;
const sql = 'INSERT INTO student (student_number, name, college, age, gender) VALUES (?, ?, ?, ?, ?)';
const values = [student_number, name, college, age, gender];
connection.query(sql, values, (error, results) => {
if (error) {
console.error(error);
res.status(500).json({ message: '新增失败' });
} else {
console.log(results);
res.json({ message: '新增成功' });
}
});
});
app.listen(3000, () => {
console.log('Server is running at http://localhost:3000');
});
```
在前端,你可以使用 Vue.js 和 Axios 库来创建一个表单,让用户输入学生信息,并将其发送到后端 API 接口中。以下是一个示例代码:
```vue
<template>
<div>
<h2>新增学生</h2>
<form @submit.prevent="addStudent">
<div>
<label for="student_number">学号:</label>
<input type="text" id="student_number" v-model="form.student_number" required>
</div>
<div>
<label for="name">姓名:</label>
<input type="text" id="name" v-model="form.name" required>
</div>
<div>
<label for="college">所在学院:</label>
<input type="text" id="college" v-model="form.college" required>
</div>
<div>
<label for="age">年龄:</label>
<input type="number" id="age" v-model.number="form.age" required>
</div>
<div>
<label for="gender">性别:</label>
<select id="gender" v-model="form.gender" required>
<option value="男">男</option>
<option value="女">女</option>
</select>
</div>
<button type="submit">提交</button>
</form>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
form: {
student_number: '',
name: '',
college: '',
age: 0,
gender: '男'
}
};
},
methods: {
async addStudent() {
try {
const response = await axios.post('/api/add-student', this.form);
console.log(response.data);
alert('新增成功!');
this.form = {
student_number: '',
name: '',
college: '',
age: 0,
gender: '男'
};
} catch (error) {
console.error(error);
alert('新增失败!');
}
}
}
};
</script>
```
通过以上代码,你可以在前端创建一个表单,让用户输入学生信息,并通过 Axios 库将数据发送到后端 API 接口中。在后端,你可以使用 MySQL 模块将学生信息插入到 MySQL 数据库中。
希望这个示例对你有所帮助。
阅读全文