武汉加油!中国加油!

  想必许多学vue的小伙伴想连接数据库,对数据进行增删改查吧,奈何不知道怎么实现。作为一路踩坑的我,为大家带来我的一些踩坑经历,水平有限,其中错误,望请指正。

  前言:

  本篇主要讲述的是如何把零件凑在一起让车跑起来,不会去关注如何制造零件,等车跑起来了我们再去了解造零件。

  先看一下效果图,如果是你需要的再往下看,不是则不必浪费你的时间。如图1,图2所示

node连接mysql生成接口,vue通过接口实现数据的增删改查(一)

图1 添加信息图

node连接mysql生成接口,vue通过接口实现数据的增删改查(一)

图2 查询、修改信息图

一、所需环境

  node、mysql、vue,最好是有phpstudy,其自带mysql,非常方便。如此选择是因为,node是运行在服务端的 JavaScript,速度快,性能好,mysql速度快,安装方便且轻量。

二、搭建项目

2.1 搭建vue项目

  我是用的是v-cli4.0的脚手架进行搭建的,不是本文重点,不详细介绍。

2.1.1 安装依赖

cnpm install vuex --save
cnpm install axios --save

  在mian.js中挂载原型。如图3所示。

node连接mysql生成接口,vue通过接口实现数据的增删改查(一)

图3

2.1.2 安装服务依赖

cnpm install mysql express body-parser --save

2.2 搭建本地服务

  搭建完成vue项目后,在根目录建立server文件夹;

  在server下建立api文件夹,api文件夹下建立StuApi.js,用于创建接口;

  在server下建立db.js,用于连接数据库;

  在server下建立index.js,为运行主文件;

  在server下建立sqlMap.js,sql语句,将和StuApi.js连接使用;

  咱先创建着这些文件,等创建了数据库,再填写内容。

  目录结构如图4所示。

node连接mysql生成接口,vue通过接口实现数据的增删改查(一)

图4 项目结构图

三、创建数据库

3.1 创建库

  此处推荐使用phpstudy,其自带mysql,方便快捷,打开MySQL-Front。如图5所示。

node连接mysql生成接口,vue通过接口实现数据的增删改查(一)

图5

  右键点击localhost-->新建-->数据库,输入名称:apitest。因为我已经创建过了,所以就不继续了。如图6所示。

node连接mysql生成接口,vue通过接口实现数据的增删改查(一)

图6

3.2 创建表、字段

  找到数据库apitest,右键单击-->新建-->表格,输入名称axios_demo,对表axios_demo右键点击,新建-->字段,输入需要的字段名,如图7所示。

node连接mysql生成接口,vue通过接口实现数据的增删改查(一)

图7

  至此,数据库就已经创建完成了,接下来我们去配置本地服务。

四、配置本地服务

4.1 连接数据库

  db.js

  找到我们的server文件夹,这就是我们的服务,db.js作为连接数据库的配置,代码如下:

 1 // db.js
 2 // 数据库连接配置
 3 module.exports = {
 4   mysql: {
 5     host: 'localhost', // 新建数据库连接时的 主机名或ID地址 内容
 6     user: 'root',
 7     password: 'root', // root 密码
 8     database: 'apitest', // 数据库名
 9     port: '3306'
10   }
11 }

4.2 sql语句操作

  sqlMap.js

  连接到数据库后,我们就要对数据进行sql语句操作,在sqlMap.js里配置,代码如下:

 1 // sqlMap.js  sql语句
 2 const sqlMap = {
 3   Stu: {
 4     add: 'insert into axios_demo(stu_Id,stu_name,stu_sex,stu_college,stu_class) values (0,?,?,?,?)',
 5     show: 'select * from axios_demo',
 6     del: 'delete from axios_demo where stu_Id = ?',
 7     update: 'update axios_demo set stu_name = ?,stu_sex = ?,stu_college = ?,stu_class = ? where stu_Id = ?'
 8   }
 9 }
10  
11 module.exports = sqlMap

4.3 制作接口

StuApi.js

  连接到数据库,也可以操作数据了,前端怎么和后端联系起来呢,解决办法之一就是:接口

  在server下的api文件夹下,藏着一个可爱的StuApi.js,它就是关键,目前我做了四个接口,分别对应数据简单的增、删、改、查,如果有更深逻辑处理的,小伙伴自行研究哦。

  代码如下:

 1 const models = require('../db')
 2 const express = require('express')
 3 const router = express.Router()
 4 const mysql = require('mysql')
 5 const $sql = require('../sqlMap')
 6 // 连接数据库
 7 const conn = mysql.createConnection(models.mysql)
 8 conn.connect()
 9 const jsonWrite = function (res, ret) {
10   if (typeof ret === 'undefined') {
11     res.json({
12       code: '1', msg: '操作失败'
13     })
14   } else {
15     res.json(
16       ret
17     )
18   }
19 }
20 // 接口:增加信息
21 router.post('/addStu', (req, res) => {
22   const sql = $sql.Stu.add
23   const params = req.body
24   console.log('添加', params)
25   conn.query(sql, [params.stu_name, params.stu_sex, params.stu_college, params.stu_class], function (err, result) {
26     if (err) {
27       console.log(err)
28     }
29     if (result) {
30       jsonWrite(res, result)
31     }
32   })
33 })
34  
35 // 接口:查询全部
36 router.get('/showStu', (req, res) => {
37   const sql = $sql.Stu.show
38   const params = req.body
39   console.log(params)
40   conn.query(sql, [params.stu_Id, params.stu_name, params.stu_sex, params.stu_college, params.stu_class], function (err, result) {
41     if (err) {
42       console.log(err)
43     }
44     if (result) {
45       jsonWrite(res, result)
46     }
47   })
48 })
49  
50 // 接口:删除信息
51 router.post('/delStu', (req, res) => {
52   const sql = $sql.Stu.del
53   const params = req.body
54   console.log('删除', params)
55   conn.query(sql, [params.stu_Id], function (err, result) {
56     if (err) {
57       console.log(err)
58     }
59     if (result) {
60       jsonWrite(res, result)
61     }
62   })
63 })
64  
65 // 接口:修改信息
66 router.post('/updateStu', (req, res) => {
67   const sql = $sql.Stu.update
68   const params = req.body
69   console.log('修改', params)
70   conn.query(sql, [params.stu_name, params.stu_sex, params.stu_college, params.stu_class, params.stu_Id], function (err, result) {
71     if (err) {
72       console.log(err)
73     }
74     if (result) {
75       jsonWrite(res, result)
76     }
77   })
78 })
79  
80 module.exports = router
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 1970-01-01
  • 2022-01-10
  • 2022-12-23
  • 2022-02-08
  • 2022-12-23
  • 2021-08-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-04
  • 2021-06-19
  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
相关资源
相似解决方案