需要什么依赖自己使用npm包管理工具下载,这里不做简述
1.在vue项目src文件夹下创建mysql目录(名字可以随意);按照图片创建文件(搞懂原理可随意修改)
index.js内容
const express = require('express')
const app = express()
const cors = require('cors')
const bodyParser = require('body-parser')
const router = require('./router')
//配置解析,用于解析json和urlencoded格式的数据
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
app.use(cors()) // 配置跨域
app.use(router) // 配置路由
// 监听
app.listen(3000, () => {
console.log('服务器启动成功...');
})
api/school.js内容
const mysql = require('mysql2')
// 创建连接池
const db = mysql.createPool({
host: 'localhost', // 这里就写本地就行,后面部署的时候会改的
user: 'root', // 用户名,默认root
password: 'root1234?', // 密码
database: 'studen_life_health' // 需要连接的数据库
})
// 学校列表
exports.schoolList = (req, res) => {
// 根据条件查询总数 【姓名模糊查询】
// console.log(req.query)
const { pageIndex, pageSize, searchKey } = req.query;
let sql
if (searchKey == '') {
sql = `select count(*) as total from school where school_name like '%${searchKey}%'`
} else {
sql = `select count(*) as total from school`
}
db.query(sql, (err, data1) => {
if (err) {
return res.send('错误:' + err.message);
}
const total = data1[0].total;
// 查询条件范围内的数据
// console.log(req.query)
const offset = pageIndex * pageSize; // 获取数据偏移量
let sql
if (searchKey == '') {
sql = `select * from school limit ${pageSize} offset ${offset}`
} else {
sql = `select * from school where school_name like '%${searchKey}%' limit ${pageSize} offset ${offset}`
}
db.query(sql, (err, data2) => {
if (err) {
return res.send('错误:' + err.message);
}
res.send({
code: 200,
message: 'success',
data: {
list: data2,
current: Number(pageIndex),
total: total
}
})
})
})
}
// 检测school_info表中是否有该学校信息
exports.schoolInfo = (req, res) => {
const { schoolId } = req.query
// console.log(schoolId)
// return
const sql = `select count(*) as total from school_info where school_id='${schoolId}'`
db.query(sql, (err, total) => {
if (err) {
return res.send('错误' + err.message)
}
const isTrue = total[0].total > 0 ? true : false
if (isTrue) {
const sql = `select * from school_info where school_id='${schoolId}'`
db.query(sql, (err, data) => {
if (err) {
return res.send('错误' + err.message)
}
res.send({
code: 200,
message: 'success',
isTrue: isTrue,
data:data[0]
})
})
return
}
res.send({
code: 200,
message: 'success',
isTrue: isTrue,
data: {
img_url: ''
}
})
})
}
// 更新学校信息
exports.schoolUpdata = (req, res) => {
const { img_url, schoolId,isTrue } = req.query
let sql
if (isTrue=='1') {
sql = `UPDATE school_info SET img_url='${img_url}' WHERE school_id='${schoolId}'`
}
if(isTrue=='2') {
sql = `insert into school_info (img_url,school_id) values ('${img_url}','${schoolId}')`
}
db.query(sql, (err, data) => {
if (err) {
return res.send('错误:' + err.message);
}
res.send({
code: 200,
message: 'success',
data: {
tootip:isTrue?'更新数据库':'添加一条新数据'
}
})
})
}
router.js内容
/**
* 配置服务器路由(接口)
*/
const express = require('express')
const router = express.Router()
let school = require('./api/school')
// 配置接口地址
router.get('/school/select', school.schoolList) // 查询school表中的数据
router.get('/school/schoolInfo', school.schoolInfo) // 查询school_info表中是否存在该数据
router.get('/school/update', school.schoolUpdata) // 更新school_info表中的数据
// 导出路由
module.exports = router