Nodejs 第三十八章(mysql2)

在之前的篇章中,已经补充完成mysql的基本知识,那么现在开始,我们需要把mysqlexpress,nodejs连接起来。

安装依赖

npm install mysql2 express js-yaml
  1. mysql2 用来连接mysql和编写sq语句
  2. express 用来提供接口 增删改差
  3. js-yaml 用来编写配置文件

编写代码

db.ocnfig.yaml

db:host: localhost #主机port: 3306 #端口user: root #账号password: '123456' #密码 一定要字符串database: xiaoman # 库

index.js

import mysql2 from 'mysql2/promise'
import fs from 'node:fs'
import jsyaml from 'js-yaml'
import express from 'express'
const yaml = fs.readFileSync('./db.config.yaml', 'utf8')
const config = jsyaml.load(yaml)
const sql = await mysql2.createConnection({...config.db
})
const app = express()
app.use(express.json())
//查询接口 全部
app.get('/',async (req,res)=>{const [data] = await sql.query('select * from user')res.send(data)
})
//单个查询 params
app.get('/user/:id',async (req,res)=>{const [row] = await sql.query(`select * from user where id = ?`,[req.params.id])res.send(row)
})//新增接口
app.post('/create',async (req,res)=>{const {name,age,hobby} = req.bodyawait sql.query(`insert into user(name,age,hobby) values(?,?,?)`,[name,age,hobby])res.send({ok:1})
})//编辑
app.post('/update',async (req,res)=>{const {name,age,hobby,id} = req.bodyawait sql.query(`update user set name = ?,age = ?,hobby = ? where id = ?`,[name,age,hobby,id])res.send({ok:1})
})
//删除
app.post('/delete',async (req,res)=>{await sql.query(`delete from user where id = ?`,[req.body.id])res.send({ok:1})
})
const port = 3000app.listen(port, () => {console.log(`Example app listening on port ${port}`)
})

index.http

方便测试接口

# 查询全部GET http://localhost:3000/ HTTP/1.1# 单个查询
GET http://localhost:3000/user/2 HTTP/1.1# 添加数据
POST http://localhost:3000/create HTTP/1.1
Content-Type: application/json{"name":"张三","age":18
}# 更新数据
POST http://localhost:3000/update HTTP/1.1
Content-Type: application/json{"name":"法外狂徒","age":20,"id":23
}#删除
# POST http://localhost:3000/delete HTTP/1.1
# Content-Type: application/json# {
#     "id":24
# }

后续更新计划

image.png

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

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

相关文章

达梦数据库——日常使用问题记录_未完待续

记录达梦数据库在日常使用中遇到的一些小问题,持续更新... 案例一:表空间扩容报错‘表空间上有事务未提交’ 原因:有会话查询表空间系统视图,或的确有表空间操作; 解决方法:结束相关会话 select SP_CLOSE…

300分钟吃透分布式缓存-04讲:缓存失效、穿透和雪崩问题怎么处理?

前面讲解了缓存的原理、引入,以及设计架构,总结了缓存在使用及设计架构过程中的很多套路和关键考量点。实际上,在缓存系统的设计架构中,还有很多坑,很多的明枪暗箭,如果设计不当会导致很多严重的后果。设计…

基于Java (spring-boot)的校园二手交易平台

一、项目介绍 基于Java (spring-boot)的校园二手交易平台:前端主要包含登录注册、求购商品、发布商品、举报、评论五个核心管理模块。后端则主要包含系统设置、物品管理、学生管理、评论管理、举报管理、新闻公告六个核心管理模块。通过此模式不同属性的用户可在系统…

白话微机:6.解释RTOS以及一些考研面试问题

一. 前言(总结世界观) 很久很久以前,有这样一个世界,这个世界有着现实世界一样的元素:那里的人又有一个别的名字叫做“数据”,人有0有1;人们也有住房,这些住房在这个世界叫做“存储器…

纯净住宅代理有何优势?为什么要用它?

随着互联网的快速发展,代理服务器已经成为许多在线活动的关键组成部分,从数据挖掘到网络安全。然而,随着技术的不断发展,住宅IP代理正崭露头角,因其在保障隐私、提升性能和应对封锁方面的卓越优势而备受瞩目。本文将深…

Java中的Arrays和Lambda表达式

Arrays和Lambda Arrays常用方法数组中是对象(如何排序) Lambda什么是LambdaLambda表达式的省略规则 Arrays 是一个用来操作数组的工具类 常用方法 数组中是对象(如何排序) 方式一 方式二 Lambda 什么是Lambda 是JDK 8 开始新…

【Linux】进程的初步认识(二)

进程的初步认识 前言查看进程通过系统调用创建进程关于创建进程的几点补充 前言 之前的一篇文章(文章链接)已经初步对于进程有了一个认识,这篇文章主要是介绍如何去查看进程的相关信息以及创建一个进程的相关知识 查看进程 查看进程的信息可以在/proc系统文件夹中查…

【性能测试入门必看】性能测试理论知识

一、性能测试理论知识 1、常用的七种性能测试方法 (1) 后端性能测试:其实,你平时听到的性能测试,大多数情况下指的是后端性能测试,也就是服务器端性能测试。后端性能测试,是通过性能测试工具模拟大量的并发用户请求&…

Unity数据持久化之PlayerPrefs

PlayerPrefs概述 什么是数据持久化 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。即将游戏数据存储到硬盘,硬盘中数据读取到游戏中,也就是传统意义上的存盘。 基本方法 PlayerPrefs是什么…

P4447 [AHOI2018初中组] 分组题解

题目 小可可的学校信息组总共有n个队员,每个人都有一个实力值。现在,一年一度的编程大赛就要到了,小可可的学校获得了若干个参赛名额,教练决定把学校信息组的n个队员分成若干个小组去参加这场比赛。 但是每个队员都不会愿意与实…

CleanMyMac X2024破解电脑版安装包下载

CleanMyMac X 4.14.6 是 CleanMyMac X 的一个具体版本号。这个版本可能包含了一些新的功能、改进和修复,以提高软件的性能和稳定性。以下是一些关于 CleanMyMac X 4.14.6 的特点和更新内容: 恶意软件保护:CleanMyMac X 4.14.6 继续加强其恶意…

机构如何搭建一个在线课程教学平台?

随着数字化教育的兴起,越来越多的教育机构开始考虑建立自己的在线课程教学平台。这一趋势不仅顺应了时代的发展,而且为教育行业带来了诸多便利和优势。构建一个在线教学平台可以帮助机构拓宽服务范围、提升教学质量、增强学生体验,并且能够有…