位置: IT常识 - 正文

vue+mysql实现前端对接数据库(vue+java+mysql)

编辑:rootadmin
vue+mysql实现前端对接数据库 下载引入相关依赖

推荐整理分享vue+mysql实现前端对接数据库(vue+java+mysql),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql前端制作软件,vue+node+mysql,vue连接mysql数据库,vue django mysql,vue+php+mysql,前端 mysql,vue django mysql,vue django mysql,内容如对您有帮助,希望把文章链接给更多的朋友!

1、cnpm install --save mysql

2、cnpm install --save axios

3、cnpm install --save body-parser

4、cnpm install --save express

5、cnpm install --save crypto

在main中引入axios

vue+mysql实现前端对接数据库(vue+java+mysql)

import Axios from 'axios'

Vue.prototype.$axios = axios

配置连接

在src下新建文件夹server,在其中新建db.js文件,index.js文件,其中db是数据库配置,index是node后端服务配置

db.js内容

module.exports = { mysql: { host: 'localhost', // 新建数据库连接时的 主机名或ID地址 内容 user: 'name', // 连接的数据用户名 password: '***', // 密码 database: 'apitest', // 数据库名 port: '3306' }}

index.js内容

// node 后端服务器const UserApi = require('./api/SysUser')const bodyParser = require('body-parser')const express = require('express')const app = express()//采用设置所有均可访问的方法解决跨域问题app.all("*", function(req, res, next) { //设置允许跨域的域名,*代表允许任意域名跨域 res.header("Access-Control-Allow-Origin", "*"); //允许的header类型 res.header("Access-Control-Allow-Headers", "content-type"); //跨域允许的请求方式 res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS"); if (req.method.toLowerCase() == 'options') res.send(200); //让options尝试请求快速结束 else next();})// 以json格式返回出去app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: false }))// 后端api路由app.use('/api/sysuser', UserApi)// 监听端口app.listen(3000)console.log('success listen at port:3000......')创建api

在新建文件夹api,在api下新建文件SysUser.js文件,这个就是之后需要使用到的接口api

const models = require('../server/db')const express = require('express')const router = express.Router()const mysql = require('mysql')const crypto = require('crypto')// 连接数据库const conn = mysql.createConnection(models.mysql)conn.connect()const jsonWrite = function (res, ret) { if (typeof ret === 'undefined') { res.json({ code: '1', msg: '操作失败' }) } else { res.json( ret ) }}// 接口:增加信息sql,编辑修改信息sql1router.post('/save', (req, res) => { const md5 = crypto.createHash('md5') const params = req.body const sql = `insert into sys_user(sys_id,sys_username,sys_pwd,sys_nickname,sys_phone,sys_head_protrait,sys_usertype,sys_userlevel) select 0,?,?,?,?,?,?,? FROM DUAL WHERE NOT EXISTS(SELECT sys_username FROM sys_user WHERE sys_username = ?)` const sql1 = `update sys_user set sys_nickname = ?,sys_phone = ?,sys_userType = ? where sys_id = ?` md5.update(params.pwd) // params.pwd = md5.digest('hex') if(params.id==0){ conn.query(sql, [params.username, md5.digest('hex'), params.nickname, params.phone, params.headProtrait, params.userType, params.level,params.username], function (err, result) { if (err) { console.log(err) } if (result) { jsonWrite(res, result) } }) }else{ conn.query(sql1, [params.nickname, params.phone, params.userType, params.id], function (err, result) { if (err) { console.log(err) } if (result) { jsonWrite(res, result) } }) }})// 接口:用户管理分页接口查询router.get('/getlist', (req, res) => { const params = req.query const sql = `SELECT * FROM sys_user WHERE sys_username LIKE '%${params.keyword}%' OR sys_phone LIKE '%${params.keyword}%' OR sys_nickname LIKE '%${params.keyword}%' limit ${(params.pageIndex-1) * params.pageSize},${params.pageSize}` const sql2 = `SELECT COUNT(*) as total FROM sys_user` conn.query(sql, function (err, result) { if (err) { console.log(err) } if (result) { conn.query(sql2,function(err, result2) { if(err){ console.log(err) } if(result2){ let ret = { data:result, total:result2[0].total } jsonWrite(res, ret) } }) } })})// 接口:删除单条数据router.post('/del', (req, res) => { const params = req.body const sql = `DELETE FROM sys_user WHERE sys_id=${params.id}` conn.query(sql, params, function (err, result) { if (err) { console.log(err) } if (result) { jsonWrite(res, result) } })})// 接口:登录router.post('/login', (req, res) => { const md5 = crypto.createHash('md5') const params = req.body md5.update(params.password) const sql = `SELECT * FROM sys_user WHERE sys_username=? AND sys_pwd=?` conn.query(sql, [params.username, md5.digest('hex')], function (err, result) { if (err) { console.log(err) } if (result) { jsonWrite(res, result) } })})// 接口:查询用户信息router.get('/get',(req, res) => { const params = req.query const sql= `select * from info_user a RIGHT JOIN (select sys_id from sys_user where sys_username = ?) b on a.sys_id = b.sys_id` conn.query(sql,[params.username],function(err, result){ if(err){ console.log(err) } if(result){ jsonWrite(res,result) } })})// 接口:编辑修改更新用户信息router.post('/alterinfo',(req,res)=>{ const params = req.body const sql = `insert into info_user(info_id,sys_id,info_real_name,info_sex,info_age,info_addr,info_phone,info_education) value (0,?,?,?,?,?,?,?)` const sql1 = `update info_user set info_real_name = ?,info_sex = ?,info_age = ?,info_addr = ?,info_phone = ?,info_education = ? where info_id = ?` if(params.id==0||params.id==null){ conn.query(sql, [params.sid, params.realname, params.sex, params.age, params.addr, params.phone,params.education], function (err, result) { if (err) { console.log(err) } if (result) { jsonWrite(res, result) } }) }else{ conn.query(sql1, [params.realname, params.sex, params.age, params.addr, params.phone,params.education,params.id], function (err, result) { if (err) { console.log(err) } if (result) { jsonWrite(res, result) } }) }})// 接口:修改密码router.post('/modifypwd',(req,res)=>{ const md5 = crypto.createHash('md5') const mdx = crypto.createHash('md5') const params = req.body const sql = `UPDATE sys_user SET sys_pwd=? WHERE sys_id = ? AND sys_pwd = ?` md5.update(params.oldPassword) mdx.update(params.newPassword) conn.query(sql,[mdx.digest('hex'),params.userId,md5.digest('hex')],function(err,result){ if (err) { console.log(err) } if (result) { jsonWrite(res, result) } })})module.exports = routerapi使用

在需要使用的界面调用api接口

<template> <div> <el-table :data="tableData"> <el-table-column prop="sys_username" label="登录账号" align="center"></el-table-column> <el-table-column prop="sys_nickname" label="昵称" align="center"></el-table-column> <el-table-column prop="sys_phone" label="手机号码" align="center"></el-table-column> <el-table-column prop="sys_usertype" label="账号类型" align="center"> <template slot-scope="scope"> <span>{{scope.row.sys_usertype==1?'超级管理员':(scope.row.sys_usertype===2?'管理员':'用户')}}</span> </template> </el-table-column> </el-table> </div></template><script> export default { data() { return { keyword: '', pageIndex: 1, pageSize: 10, tableData: [], total: 0 } }, created() { this.getlist(); }, methods: { getlist() { let params = { keyword: this.keyword, pageIndex: this.pageIndex, pageSize: this.pageSize } // 这里使用http://localhost:3000是因为配置地方监听的3000端口 // /api/sysuser 这一部分也是在index.js中引入配置的 // /getlist 是在api接口里面的方法 // 整个三部分组合成立通常使用的接口 // 其中 前面地址部分可以自己全局去定义,同样$http(axios)也可以封装 this.$http.get('http://localhost:3000/api/sysuser/getlist', { params: params }) .then(response => { console.log(response); if (response.status == 200) { let datas = response.data this.tableData = datas.data this.total = datas.total } else { console.log(response) } }) .catch(error => { console.log(error) }) }, } }</script><style scoped></style>

以上就是整个内容,但要运行起来,除了运行vue项目外,还需要将配置的node后端运行起来,可以cmd或者用vscode的内置终端运行之前配置的server文件,进入到server文件夹位置,运行:node index出现以下内容即运行成功

 获取数据效果展示:

本文链接地址:https://www.jiuchutong.com/zhishi/292964.html 转载请保留说明!

上一篇:宝塔部署nodejs项目(宝塔部署django)

下一篇:部署ChatGPT开源项目chatgpt-web(bat开源项目)

  • seo博客优化推广的六大方法(seo博客优化推广方案)

    seo博客优化推广的六大方法(seo博客优化推广方案)

  • 身份证号码复制后怎么变成E+17(身份证一键生成)

    身份证号码复制后怎么变成E+17(身份证一键生成)

  • OPPO手机如何调输入法键盘高度(oppo手机如何调字体)

    OPPO手机如何调输入法键盘高度(oppo手机如何调字体)

  • qq怎么设置系统提示音(qq怎么设置系统声音)

    qq怎么设置系统提示音(qq怎么设置系统声音)

  • 华为的车载系统在哪里设置(华为车载系统hicar支持的手机)

    华为的车载系统在哪里设置(华为车载系统hicar支持的手机)

  • vivo手机截屏怎么截屏(vivo手机截屏怎么操作视频)

    vivo手机截屏怎么截屏(vivo手机截屏怎么操作视频)

  • 淘宝收藏夹上限(淘宝收藏夹上限提升到4000)

    淘宝收藏夹上限(淘宝收藏夹上限提升到4000)

  • iphone7左边扬声器不响(iphone7p扬声器左边没声音)

    iphone7左边扬声器不响(iphone7p扬声器左边没声音)

  • ipadmini2和mini3的区别(ipadmini2和mini3的内屏可以对换吗?)

    ipadmini2和mini3的区别(ipadmini2和mini3的内屏可以对换吗?)

  • iqooneo855屏幕刷新率是多少(iqooneo855竞速版刷机)

    iqooneo855屏幕刷新率是多少(iqooneo855竞速版刷机)

  • 抖音卸载后是什么状态(抖音卸载后是什么感受)

    抖音卸载后是什么状态(抖音卸载后是什么感受)

  • 手机上dlna是什么意思(手机里dlna是什么意思)

    手机上dlna是什么意思(手机里dlna是什么意思)

  • 数据线破了会漏电吗(数据线破裂会不会有电)

    数据线破了会漏电吗(数据线破裂会不会有电)

  • office2010无法验证许可证(office2010无法验证此应用程序许可证 regedit)

    office2010无法验证许可证(office2010无法验证此应用程序许可证 regedit)

  • 微信封几次就不能用了(微信封几次就不能登录了)

    微信封几次就不能用了(微信封几次就不能登录了)

  • 钉钉老师可以调动前置摄像头吗(钉钉老师可以调声音吗)

    钉钉老师可以调动前置摄像头吗(钉钉老师可以调声音吗)

  • 早期计算机是用来(早期计算机是用来运行什么的)

    早期计算机是用来(早期计算机是用来运行什么的)

  • 电脑视频截图怎么截屏(电脑视频截图怎么设置日期和时间)

    电脑视频截图怎么截屏(电脑视频截图怎么设置日期和时间)

  • 苹果11边框什么材质(苹果11边框什么形状)

    苹果11边框什么材质(苹果11边框什么形状)

  • 为什么我的淘宝是家乡版的(为什么我的淘宝没有分期付款)

    为什么我的淘宝是家乡版的(为什么我的淘宝没有分期付款)

  • 抖音怎么搜不到千年等一回(抖音怎么搜不到对方的抖音号)

    抖音怎么搜不到千年等一回(抖音怎么搜不到对方的抖音号)

  • 苹果手机如何给照片画线(苹果手机如何给应用上锁密码)

    苹果手机如何给照片画线(苹果手机如何给应用上锁密码)

  • 哔哩哔哩如何上传视频(哔哩哔哩是什么网站)

    哔哩哔哩如何上传视频(哔哩哔哩是什么网站)

  • vue 解决问题:Webpack安装不成功,webpack -v无法正常显示版本号(vue中遇到的问题)

    vue 解决问题:Webpack安装不成功,webpack -v无法正常显示版本号(vue中遇到的问题)

  • 自产和外购的视频区别
  • 取得社会团体会费专用票据可以税前扣除吗
  • 个体每月开票超10万
  • 其他应收款利息收入会计分录怎么写
  • 金融资产摊余成本例题
  • 税控服务费能抵扣吗
  • 商品损失 进项税 确定
  • 预付账款转入其他非流动资产
  • 红冲的普票要给对方单位吗
  • 企业转企业对公账户
  • 固定资产已折旧完报废如何处理
  • 加工承揽合同印花税谁交
  • 付款小于发票金额的原因
  • 忘记申报印花税,但是公司已经注销了怎么办
  • 民办非企业单位设立分机构
  • 企业交税的钱用在哪里
  • 外地预缴个人所得税会计分录
  • 留抵税额怎么计算
  • 汇算清缴的所得税会计分录
  • 发票有问题找谁
  • 收取国外技术服务费如何在外管申报个税
  • 税前利润弥补亏损
  • flash动画导出视频有水印吗
  • 宿舍开店能开些啥
  • 如何激活windows11专业版?
  • 苹果14promax最新版本16.6
  • win10新装系统我的电脑在哪
  • 企业的借款利息支出全部可以税前扣除吗
  • 集团内部调拨账务处理
  • 个税六项专项扣除是什么
  • 结转存货的成本叫什么
  • 发票红冲是什么意思需要给钱吗
  • 社保缴纳基数相差多少
  • 融资租赁与经营租赁的联系
  • 应收票据的基本要素包括
  • css flaot
  • 移动列表格
  • vue3 hooks实现
  • 学习笔记:深度学习(2)——BP神经网络
  • 购入需要安装的固定资产应先通过什么账户
  • 海关缴款书能重开吗
  • 开办费的主要账户是什么
  • python从键盘输入正整数n,计算1+2+3
  • db2数据库性能调整和优化
  • mysql主键语句
  • mongodb快速入门
  • 帝国cms伪静态规则
  • 免费学电脑的网站
  • 社保次月几号生效
  • 工厂道路设计规范
  • 房屋出租收到的发票
  • 报销差旅费的进项税额
  • 未计提完固定资产怎么办
  • mysql创建和删除数据库
  • 当年发生亏损会影响所有者权益吗
  • 母子公司往来款属于借款吗
  • 权益法下股权投资包括
  • 现金流量表每月要报吗
  • 应收帐款周转率计算公式为
  • 购买用品开专票怎么入账
  • 增值税免税企业可以开具专票吗
  • 注销企业基本户销户规定
  • mysql的概念及作用
  • xp系统电脑开机密码忘记了
  • 关闭antivirus
  • mac如何通过终端启动
  • freebsd操作命令
  • 系统备份恢复系统
  • linux安装vmvare
  • 无人值守工厂
  • 微软新品什么时候上市
  • Win10桌面图标没有了
  • cocos2dx node
  • java物流管理系统
  • 如何检测ip地址是否被占用
  • javascript基础教程pdf
  • jquery的方法
  • javascript面向对象 第三方类库
  • 核定征收,新企业怎么填
  • 安徽省地方税务局刘利庆
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设