1、目录结构
核心目录
项目
-- routes
-- stu.js #路由
-- db
-- mysql.js #数据库配置
-- controller
-- stuController.js #控制层
2、核心代码
mysql.js 文件
const mysql = require('mysql')
// 创建数据库连接
const conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
port: '3306',
database: 'stusystem'
})
// 开始连接
conn.connect()
//执行SQL的函数
function exec(sql,params) {
const promise = new Promise((resolve,reject)=>{
conn.query(sql, params, (err,result) => {
if(err){
reject(err);
return;
}
resolve(result);
})
});
return promise;
}
module.exports = exec
stuController.js 文件
const exec = require('../db/mysql')
//添加学生数据
const add = (stu) => {
const sql = 'insert into stu(stuname,age,sex) values(?,?,?)'
const params = [stu.name,stu.age,stu.sex]
return exec(sql,params).then(insertStu=>{
return {
id: insertStu.insertId
}
})
}
//查询学生
const query = ()=> {
const sql = "select * from stu"
return exec(sql).then(data=>{
return data
})
}
//修改学生
const update = (stu)=> {
const sql = "update stu set stuname=?,age=?,sex=? where sid=?"
const params = [stu.name,stu.age,stu.sex,stu.id]
return exec(sql,params).then(data=>{
return {
row: data.affectedRows
}
})
}
//删除学生
const del = (id)=> {
const sql = "delete from stu where sid=?"
const params = [id]
return exec(sql,params).then(data=>{
return {
row: data.affectedRows
}
})
}
module.exports = {
add,query,update,del
}
routes/stu.js 文件
let express = require('express')
let router = express.Router()
let bodyParser = require('body-parser')
let stu = require('../controller/stuController')
// 解析提交的form表单参数
let urlencodedParser = bodyParser.urlencoded({ extended: true })
//添加学生
router.post('/add',urlencodedParser,(req,res,next)=>{
let result = stu.add(req.body)
result.then(data=>{
if(data.id > 1){
res.json({
code: 200,
msg: "添加成功",
data
})
}else{
res.json({
code: 500,
msg: "添加失败",
data
})
}
})
})
//查询学生
router.get('/query',(req,res,next)=>{
let result = stu.query();
result.then(data=>{
res.json({
data
})
})
})
//修改学生
router.post('/update',urlencodedParser,(req,res,next)=>{
let result = stu.update(req.body)
result.then(row=>{
res.json({
row
})
})
})
//删除学生
router.get("/del",(req,res,next)=>{
let result = stu.del(req.query.id)
result.then(row=>{
res.json({
row
})
})
})
module.exports = router