VUE综合数据库编程

news2025/2/23 23:34:46

VUE综合数据库编程

案例要求

基于node express+vue cli+elementUI+mysql,在如图8.14所示的功能的基础上增加一个输入框用于输入商品的id,增加一个“删除”按钮,完成根据id删除商品的功能(删除后的结果通过查看数据表goods的最新数据来验证)。

第1步:修改service/db目录下的sqlMap.js代码。修改后的代码如下(加粗的为新加入的代码)。

// SQL语句

var sqlMap = {

    // 商品

    good: {

        add: 'insert into goods(name, price) values (?, ?)',

        del: 'delete from goods where id=?'

    }

}

module.exports = sqlMap

第2步:修改service/api目录下的goodApip.js代码。新增加一个/delGood的api接口,goodApi.js的完整代码如下。

var models = require('../db/db');  //导入db.js文件

var express = require('express'); //导入express插件

var router = express.Router();   //导入路由中间件

var mysql = require('mysql');    //导入mysql插件

//ES6中,js变量名变量名是由数字,英文字母,英文下划线,$符组成的。

//开始必须是英文字母或英文下划线或$符,后续可跟字母,数字,下划线,$

var $sql = require('../db/sqlMap');  //导入sqlMap.js文件

// 连接MySQL数据库

var conn = mysql.createConnection(models.mysql);

conn.connect();

var jsonWrite = function (res, ret) {

    if (typeof ret === 'undefined') {

        res.json({

            code: '1',

            msg: '操作失败'

        });

    } else {

        //ret结果作为body存入res后发送一个json响应。

        res.json(ret);

    }

};

//routerpost方法的回调函数的第一个参数req是传入的参数

//第二个参数res是返回值

//router处理添加商品http post请求。完整http post请求地址为:’/api/good/addGood’

router.post('/addGood', (req, res) => {

    var sql1 = $sql.good.add;

    var params = req.body;

    console.log(params);

    //query方法的第一个参数是一个sql,第二个参数可以是一个数组也可以不存在,

    //query方法的第三个参数是一个回调方法,该回调函数的第一个参数是错误执行错误的时候有值,

    //第二个参数是成功时的返回值。

    //MySQL数据库中执行添加商品的操作。

    conn.query(sql1, [params.name, params.price], function (err, result) {

        if (err) {

            console.log(err);

        }

        if (result) {

            console.log("result:");

            console.log(result);

            //result结果作为body存入res后发送一个json响应。

            jsonWrite(res, result);

        }

    })

});

// 增加一个根据id删除商品信息的

router.post('/delGood', (req, res) => {

    var sql = $sql.good.del;

    var params2 = req.body;

    conn.query(sql, [params2.id], function (err, result) {

        if (err) {

            console.log(err);

        }

        if (result) {

            console.log("result:");

            console.log(result);

            jsonWrite(res, result);

        }

    })

});

module.exports = router;

第3步:修改vue组件的代码,将src/ components/ HelloWorld.vue的代码修改为如下代码(修改的内容主要有页面布局的改变采用element-ul的栈格布局组件,引入删除的按钮,引入删除商品信息的接口)。

<template>

  <div class="hello">

    <h1>{{ msg }}</h1>

    <form >

      <el-row :span="12" type="flex" justify="space-around" align="middle">

        <el-col > <el-input v-model="name" placeholder="名称" style="width:200px"></el-input>

          <el-input v-model="price" placeholder="价格" style="width:200px"></el-input>

          <el-button type="primary" @click="addGood">提交</el-button></el-col>

      </el-row>

         <el-row type="flex" justify="space-around" align="middle">

           <el-col :span="12"> <el-input v-model="id" placeholder="序号" style="width:200px"></el-input>

      <el-button type="danger" @click="delGood">删除</el-button></el-col>

         </el-row>

       

    </form>

  </div>

</template>

<script>

export default {

  name: ' HelloWorld ',

  data() {

    return {

      msg: 'Welcome to Your Vue.js App',

      name: '',

      price: '',

      id:''

    }

  },

  methods: {

// 添加商品信息

    addGood() {

      var name = this.name;

      var price = this.price;

      //通过http post方式访问后端服务器。http post方式用于上传数据到服务器。

      //http.post的第一个参数为请求地址,第二个参数为携带的参数,第三参数可以为空,但不能省略。

      this.$http.post('/api/good/addGood', {

        name: name,

        price: price

      }, {}).then((response) => {

        console.log(response);

      })

    },

    // 删除商品的信息

    delGood() {

      var id = this.id;

      //通过http post方式访问后端服务器。http post方式用于上传数据到服务器。

      //http.post的第一个参数为请求地址,第二个参数为携带的参数,第三参数可以为空,但不能省略。

      this.$http.post('/api/good/delGood', {

        id:id

      }, {}).then((response) => {

        console.log(response);

      })

    }

  }

}

</script>

第4步:service目录下输入cmd,并在命令行下输入“node app” 启动服务端程序。在项目目录下输入cmd,并在命令行下输入“npm run dev”,并访问http://localhost:8080,得到的效果图如图4.2.1所示。

图4.2.1 增加删除功能的效果图

往goods表中添加一条新数据“名称:orange,价格:5”,插入前的效果图如图4.2.2所示,插入之后的查看数据库表如图4.2.3所示。

图4.2.2 添加数据前的界面

图4.2.3 添加数据后的goods表信息

删除goods表中序号为“7”的商品的信息,“7”号商品的信息如图4.2.3所示,删除后的goods表信息如图4.2.4所示。

图4.2.4 删除“7”号商品信息的goods表信息

第5步:解决往数据库中插入中文失败的解决方法,修改数据库中的字符集为utf-8,如图4.2.5所示。

图4.2.5 修改goods表字符集

修改字符集后插入一条新数据“名称:西瓜,价格:10”

图4.2.6插入中文数据前的页面效果图

图4.2.7 插入中文数据后的goods表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LinkedIn领英怎么避免封号?封号怎么解决?(建议收藏)

使用领英的朋友都知道&#xff0c;领英是很容易封号的。辛辛苦苦经营到上千好友的账号&#xff0c;第二天登录&#xff0c;提示“您的账号受到限制&#xff0c;暂时无法使用”。 例如1&#xff1a; 例如2&#xff1a; Linkedin如何避免封号&#xff1f; 大家肯定不愿看到这…

【JavaSE】Comparable接口和Comparator接口

文章目录一、Comparable接口二、Comparator接口一、Comparable接口 当我们要比较两个类的大小时&#xff0c;我们该如何比较呢&#xff0c;是这样吗&#xff1f; 这样写是错误的&#xff0c;所以我们需要用到接口Comparable的CompareTo方法。 而ComparaTo是抽象方法&#x…

74cms骑士人才招聘系统源码SE版 v3.16.0

介绍&#xff1a; 74cms骑士人才招聘系统是一项基于PHPMYSQL为核心开发的一套专业人才招聘系统。骑士人才系统拥有十多年的人才招聘系统运营解决方案&#xff0c;同时我们提供智能化招聘系统、招考系统等全方位系统化解决方案。 74cms骑士人才招聘系统SE版&#xff1a; 更懂运…

Redhat(9)-磁盘分区-parted-swap-lvm-stratis-vdo-tuned

1.parted 2.swap 3.lvm 4.stratis 5.vdo 6.tuned 1.MBR: MASTER BOOT LOADER 逻辑分区&#xff1a;可以直接格式化使用 扩展分区&#xff1a;不可以直接格式化使用 2.GPT分区 1.parted 2.swap 虚拟内存 linux vmmemoryswap Hibernate :内存 3.lvm 3.1实现的功能和优点&…

前三强重磅揭晓!华秋第八届硬创大赛-全国总决赛路演活动成功举办!

11月19日&#xff0c;华秋第八届硬创大赛-全国总决赛路演活动在深圳高交会成功举办。此次项目路演活动是在深圳市福田区科技创新局指导下&#xff0c;由深圳华秋电子有限公司主办&#xff0c;深圳高交会联合主办的硬件创新领域专业赛事。共13个硬科技领域的优秀项目从众多报名项…

零基础入门JavaWeb——Web基本概念

一、服务器和客户端的概念 1.1 客户端的作用 与用户进行交互&#xff0c;用于接收用户的输入、展示服务器端的数据以及向服务器端传递数据。 1.2 服务器的作用 与客户端进行交互&#xff0c;接收客户端的数据、处理具体的业务逻辑、传递给客户端需要的数据。 1.3 什么是服务…

王道考研——操作系统(第二章 进程管理)

一、进程的概念、组成、特征 进程的概念 进程的组成——PCB 进程的组成——程序段、数据段 知识滚雪球&#xff1a;程序是如何运行的&#xff1f; 进程的组成 进程的特征 知识回顾与重要考点 二、进程的状态与转换 进程的状态——创建态、就绪态 进程的状态——运行态 进程的…

5G+北斗:人员定位系统为化工厂定位赋能

人员定位系统是集计算机软硬件、信息采集处理、无线数据传输、网络数据通讯、自动控制等技术多学科综合应用为一体的自动识别信息技术产品&#xff0c;可以实现对不同人、物在不同状态下的智能识别。 物联网时代&#xff0c;人们以感知为目的实现人与人、人与物、物与物全面互联…

【栈和队列的相互转换】

目录&#xff1a;前言一、 用队列实现栈&#xff08;一&#xff09; 题目分析1.队列基本操作2.画图分析3.翻译图解&#xff08;二&#xff09;整体代码二、用栈实现队列&#xff08;一&#xff09; 题目分析1.栈基本操作2.画图分析3.翻译图解&#xff08;二&#xff09;整体代码…

wy的leetcode刷题记录_Day47

wy的leetcode刷题记录_Day47 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间&#xff1a;2022-11-20 前言 补 目录wy的leetcode刷题记录_Day47声明前言799. 香槟塔题目介绍思路代码收获105. 从前序与中序遍历序列构造二叉树题目介绍思路代码收获79…

优思学院|精益六西格玛的成本效益怎么样?

所有精益六西格玛的实施都以项目工作为中心&#xff0c;因此可以用投资回报率&#xff08;ROI&#xff09;确定成本效益。项目可以集中在通过改善营收或降低成本&#xff08;或两者&#xff09;来提高净利润。 它们也可以侧重于通过减少资产&#xff08;通常是库存或应收账款&…

迅为IMX8M开发板2gst-inspect-1.0测试

gstreamer 开发中&#xff0c;一般开发思路为&#xff1a;寻找命令行实现--命令行验证--将命令行集成到代码中---代码工程 化。当然如果你要代码更优雅一点&#xff0c;可以用命令行用对应的 API 来实现。本节来总结一下 gstreamer 的常用 使用过程。 gst-inspect 可以查看插件…

新鲜出炉,Linux眼花缭乱的小寄巧

14天学习训练营导师课程&#xff1a; 互联网老辛《 符合学习规律的超详细linux实战快速入门》 努力是为了不平庸~ 学习有些时候是枯燥的&#xff0c;但收获的快乐是加倍的&#xff0c;欢迎记录下你的那些努力时刻&#xff08;学习知识点/题解/项目实操/遇到的bug/等等&#xf…

MySQL_数据库的约束

文章目录 1. NULL约束 2. UNIQUE(唯一约束) 3. DEFAULT(默认值约束) 4. PRIMARY KEY(主键约束) 5. FOREIGN KEY(外键约束) 数据库的约束就是关系型数据库给我们提供的一种"校验数据"合法性的机制 1. NULL约束 创建表时,可以指定某列不为空 create table stud…

MindFusion Scheduler for JavaScript 2.0 Crack

用纯 JAVASCRIPT 编写的交互式调度库--MindFusion Scheduler for JavaScript MindFusion 为所有需要呈现交互式时间表、活动日程或约会日历的应用程序提供了完整的解决方案。完全响应、高度可定制且易于集成的 JavaScript 调度库&#xff0c;您可以根据需要快速编程。 本土化 本…

Centos7 linux 中 防火墙操作命令及SSH远程连接

文章目录查看防火墙状态开启防火墙关闭防火墙查看对外开放的端口状态对外开发端口SSH 工具远程连接VMware 虚拟机查看防火墙状态 systemctl status firewalld开启防火墙 systemctl start firewalld若遇到无法开启 先用&#xff1a;systemctl unmask firewalld.service 然后&a…

Java继承——抽象类与接口的比较以及内部类、匿名类、异常类......

文章目录壹、抽象类与接口的比较贰、内部类叁、匿名类&#xff08;匿名内部类&#xff09;肆、异常类&#xff08;Exception&#xff09;壹、抽象类与接口的比较 1、抽象类与接口都可以有抽象方法&#xff1b; 2、接口中只可以有常量&#xff0c;不可以有变量&#xff1b;而抽…

Mac | 使用 Wineskin 在 Mac 上运行 exe 程序

​1 Wineskin 简介 Wineskin is a user-friendly tool used to make ports of Microsoft Windows software to macOS. 很多实用工具只有 Windows 版本&#xff0c;而 Mac 机器本身不支持运行 exe 程序&#xff0c;除了安装双系统、虚拟机等方法外&#xff0c;Wineskin 可以将…

使用HTML+CSS实现一个静态页面——面包蛋糕 (9页)

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

xlsx库实现纯前端导入导出Excel

前言 最近做了前端导入、导出 Excel 的需求&#xff0c;用到了js-xlsx这个库&#xff0c;该库文档提供的用例很少&#xff0c;并不是很友好。本文总结一下我是如何实现需求的。 需求 提供一个 Excel 文件&#xff0c;将里面的内容转成 JSON 导入数据提供一个 JSON 文件&…