express操作mysql数据库的方法总结

作为前端,我们无需去考虑数据库的问题,业务场景需要的话,我们可以mock数据,满足暂时的联调场景。但是对于数据库,我们前端可以不用,却不能不了解不懂。所以这篇文章整理下,nodejs框架express中怎么使用mysql这样的数据库。提升我们处理业务能力的水平!!!

安装mysql

1.硬安装,就是到mysql官网下载.exe安装包(window系统),mac自行百度哈
2.项目里面安装

npm i mysql
"dependencies": {"body-parser": "^1.20.2","cors": "^2.8.5","ejs": "^3.1.9","express": "^4.19.2","mysql": "^2.18.1"}

在这里插入图片描述

封装

const mysql = require("mysql");const db = mysql.createPool({host: "127.0.0.1",user: "root",password: "",database: "expressapp",
});module.exports = db;

database:数据库的名称,我们新建的表都放在这个库里,其他的字段见名知意

建库

这里大家可以选择图形化界面,也可以用cmd命令行,看个人习惯

我这里用的ideal自带的数据库可视化界面,大家可以自由发挥
在这里插入图片描述
在这里插入图片描述

联调开发

常见业务就是增删改查,所以我们分别来看看怎么在express里面操作

const db = require("../db/index");
//插入数据1const user = { username: "spider-man", password: "456789" };const sqlStr2 = "insert into tb_users (username,password) values (?,?)";db.query(sqlStr2, [user.username, user.password], (err, data) => {if (err) return console.log(err.message);if (data.affectedRows === 1) {console.log("插入成功");}
});//插入数据2  快速插入const user = { username: "hot-man", password: "987123" };const sqlStr2 = "insert into tb_users set ?";db.query(sqlStr2, user, (err, data) => {if (err) return console.log(err.message);if (data.affectedRows === 1) {console.log("插入成功");}
});

//删除数据,会真正删除数据,硬删除const sqlStr4 = "delete from tb_users where id = ?";db.query(sqlStr4, 7, (err, data) => {if (err) return console.log(err.message);if (data.affectedRows === 1) {console.log("删除成功");}});//标记删除,只是模拟删除,数据还在数据库,软删除
const sqlStr5 = "update tb_users set status = ? where id = ?";
db.query(sqlStr5, [1, 9], (err, data) => {if (err) return console.log(err.message);if (data.affectedRows === 1) {console.log("删除成功");}
});

//更新数据1const user = { id: 7, username: "aaa", password: "654321" };const sqlStr3 = "update tb_users set username = ? ,password = ? where id = ?";db.query(sqlStr3, [user.username, user.password, user.id], (err, data) => {if (err) return console.log(err.message);//执行update语句也是返回一个对象if (data.affectedRows === 1) {console.log("修改成功");}});//更新数据2--快捷方式const user = { id: 7, username: "sam1", password: "123456" };const sqlStr3 = "update tb_users set ? where id = ?";db.query(sqlStr3, [user, user.id], (err, data) => {if (err) return console.log(err.message);//执行update语句也是返回一个对象if (data.affectedRows === 1) {console.log("修改成功");}});

//查询数据const sqlStr = "select * from tb_users";db.query(sqlStr, (err, data) => {if (err) return console.log(err.message);console.log("🚀 ~ db.query ~ data:", data);});

一顿猛操作之后的数据库结果:

在这里插入图片描述

最后总结

列出下mysql数据库操作常见的命令行方式

show databases ;use expressapp;show tables ;//选择所有数据
select  * from tb_users;//选择特定字段的数据
select  id,username,status from  tb_users;//插入新数据
insert into tb_users  (username, password) values ('zs','11111'),('lusi','456123');
;//更新字段
update  tb_users set password='6565665',status = 1  where  id =  5;//删除记录
delete  from tb_users where  id = 4 or 5;select  * from tb_users where  id > 7;select  * from tb_users where  username != 'jack';select *
from tb_users where  id  = 7 or id =8;select  * from tb_users  order by  status desc, username asc;select  count(*) from tb_users where  status = 0;select count(*) as total  from tb_users;select username as user1,password  from tb_users;

这样,我们就在express这样的服务端框架里,实现了真实数据的处理,离大前端又近了一步!!_

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

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

相关文章

IDEA+Docker远程一键部署SpringBoot项目

一.引语 本文将学习使用IDEADocker远程一键部署SpringBoot项目,对比上传jar包到服务器,再通过java指令运行项目,极大程度的提高了项目部署效率。可谓不用不知道,一用再也停不下来~ 为了后续学习方便,需要提前进行如下…

Firebase集成

目标: 1)集成Firebase; 2) 集成Firebase Crashlytics,监控APP崩溃 海外APP开发需要科学上网。 一、Firebase是什么? Firebase 是一个应用开发平台,可帮助您构建和拓展用户喜爱的应用和游戏。提供了应用的构建、发布…

Nuxt3 实战 (三):使用 release-it 自动管理版本号和生成 CHANGELOG

release-it 能做什么? 增加版本号并提交 Git生成变更日志(Changelog)并提交到 Git创建 Git 标签并推送到远程仓库发布到 npm 等软件仓库在 GitHub、GitLab 等平台创建发行版 前置知识 在看这篇文章之前,我们有必要了解一下 Sem…

Few-Shot目标检测数据集 | Few-Shot目标检测数据集_已经整理成MS-COCO数据格式_含60000+张图_可直接用于目标检测算法训练

项目应用场景 面向 Few-Shot 目标检测场景,项目提供 6000 张图,已经整理成 MS-COCO 数据格式,可用于 Few-Shot 目标检测的训练数据集,或作为 Few-Shot 目标检测数据集的补充。 数据集展示 数据集下载 > 具体参见项目 README.m…

人工智能_大模型023_AssistantsAPI_01_OpenAI助手的创建_API的调用_生命周期管理_对话服务创建---人工智能工作笔记0159

先来说一下一些问题: 尽量不要微调,很麻烦,而且效果需要自己不断的去测试. 如果文档中有图表,大量的图片去分析就不合适了. 是否用RAG搜索,这个可以这样来弄,首先去es库去搜能直接找到答案可以就不用去RAG检索了,也可以设置一个分,如果低于60分,那么就可以去进行RAG检索 微…

Teachable Machine模型之TensorFlow使用篇

前言: 使用在teachable machine训练的h5格式模型 tensorflow使用篇 1. 使用teachable machine训练模型 地址: 传送门, 需要梯子翻一下 训练后, 导出的时候可以选择三种类型 导出模型文件 converted_keras.zip (py版) 解压后得到 2. py项目中使用模型 根据你当时使用tea…

volta(轻松切换管理Node.js版本)

Node.js版本管理 Volta提供了一个简单直观的命令行界面,可以轻松地安装、卸载、更新和切换Node.js版本。 Volta 既可以全局使用,也可以在项目级别使用,可以为每个项目单独设置node版本,nvm不行。 下载安装Volta 参考: …

自建远程桌面服务器,控制免root安卓手机和pc

RustDesk是一个开源的远程桌面软件,它允许用户通过互联网在不同设备之间共享桌面和控制权限。这款软件以最少的配置提供了自托管和安全保障,是一个类似于TeamViewer的开源替代品​ (RustDesk)​。RustDesk支持在Windows、macOS、Linux、iOS、Android以及…

[数据概念]对原始公开数据赋权的思考

“ 对于原始、公开信息,要充分保障整个社会对该类信息资源的合理利用,以维护信息公平和促进更大范围的创新。。” 2022年12月,党中央、国务院发布《关于构建数据基础制度更好发挥数据要素作用的意见》(以下称《数据二十条》&#…

互联网大厂ssp面经之路:计算机网络part2

什么是 HTTP 和 HTTPS?它们之间有什么区别? a. HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是用于在Web上传输数据的协议。它们之间的区别在于安全性和数据传输方式。 b. HTTP是一种不安全的协议&…

变分自编码器生成新的手写数字图像

变分自编码器(Variational Autoencoder,VAE)是一种生成模型,通常用于学习数据的潜在表示,并用于生成新的数据样本。它由两部分组成:编码器和解码器。 编码器(Encoder):接…

用Echarts词云数据可视化热词表白​​

目录 1、使用前准备 2、准备工作 3、盒子搭建 4、整体展现 1、使用前准备 找到表白对象(重中之重!),不要一见钟情(个人觉得:一见钟情属于见色起意!),因为数据可视化需…

海外仓为何要做仓库管理系统?位像素海外仓系统的仓库管理功能有哪些?

在当今繁荣的跨境电商市场中,海外仓已经成为了许多电商企业的重要选择。但是,海外仓的成功与否并不仅仅取决于其位置和规模,同样重要的是其仓库管理系统的有效性。那么,海外仓为何要做仓库管理系统呢?让我们一起来探讨…

“成像光谱遥感技术中的AI革命:ChatGPT在遥感领域中的应用“

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境,是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型,在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用,人工智能…

可视化大屏的应用(9):智慧旅游和智慧景区

可视化大屏在智慧旅游领域具有多种价值,可以为旅游管理者和游客提供更加便捷、优质的服务和体验。本期大千UI工场带来智慧旅游和智慧景区的可视化大屏界面,供大家欣赏。 可视化大屏在智慧旅游领域的价值如下: 提供全面的信息展示&#xff0…

数据结构:构建完全二叉查找树

文章目录 1、步骤 1: 对给定数组排序2、步骤 2: 递归构建完全二叉查找树3、注意4、在有序数组中寻找根结点位置5、代码实现6、其他方法?基本思路插入操作删除操作特别考虑 对于一个给定序列的二叉查找树,有很多种,但是完全二叉查找树只有一种…

【网站项目】医院核酸检测预约挂号小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

4.1-4.5算法刷题笔记(17道题)

4.1-4.5算法刷题笔记 1. 区间和2. 区间合并3. 用队列实现栈(queueMain queueTemp;)4. 最小栈 1. 单链表模板5. 单链表 2. 双链表模板6. 双链表 3. 模拟栈7. 模拟栈(一个数组即可)8. 表达式求值 4. 队列 tt -1,hh 0;9. 模拟队列 5. 单调栈10. 单调栈 6…

【接口自动化】参数化替换

在做接口测试时,除了测单个接口,还需要进行业务链路间的接口测试 比如[注册-登陆]需要token鉴权的业务流 当我们用使用postman/jmeter等工具时,将注册接口的一些响应信息提取出来,放到登陆接口的请求中,来完成某个业务…

在Gazebo中如何拯救翻车的机器人

Gazebo提供了一些交互工具,允许你直接通过图形界面操作模型: 启动Gazebo后,在右侧工具栏中,你会找到一个可以拖拽物体的图标(通常是一个手掌图标或者类似的)。点击这个图标。 随后,你可以用鼠标…