Vue+node+mysql项目配置

文章介绍了如何在Vue项目中使用Express框架和mysql2库来处理数据库操作,包括创建API接口,如查询school表、检查school_info表和更新学校信息。
摘要由CSDN通过智能技术生成

需要什么依赖自己使用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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值