Nodejs 第三十七章(mysql2)

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

安装依赖

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

编写代码

db.ocnfig.yaml

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

index.js

js 复制代码
import mysql2 from 'mysql2/promise';
import express from 'express';
import jsYaml from 'js-yaml'
import fs from 'node:fs'
const yamlInfo = fs.readFileSync('./db.config.yaml')
const config = jsYaml.load(yamlInfo)
const sql = await mysql2.createConnection({
    ...config.db
});

const app = express();
app.use(express.json());
//查询全部
app.get('/', async (req, res) => {
    const [rows] = await sql.query('select * from user');
    res.send(rows)
})
//单个查询
app.get('/user/:id', async (req, res) => {
    const [rows] = await sql.query('select * from user where id = ?', [req.params.id]);
    res.send(rows)
})
//创建
app.post('/create', async (req, res) => {
    const { name, age, hobby } = req.body;
    const [rows] = await sql.query('insert into user (name, age, hobby) values (?, ?, ?)', [name, age, hobby]);
    res.send(rows)
})
//更新
app.post('/update', async (req, res) => {
    const { id, name, age, hobby } = req.body;
    const [rows] = await sql.query('update user set name = ?, age = ?,hobby = ? where id = ?', [name, age, hobby, id]);
    res.send(rows)
})


const port = 3000;
app.listen(port, () => {
    console.log(`server is running at http://localhost:${port}`);
})

index.http

方便测试接口

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
}

后续更新计划

相关推荐
原则猫5 分钟前
HOOKS 背后机制
前端
码语智行11 分钟前
首页导航跳转功能深度解析-系统内和系统外
前端
阿猫的故乡1 小时前
Vue过渡动画从入门到装X:淡入淡出、滑动、列表动画、第三方库全搞定
前端·javascript·vue.js
IManiy1 小时前
总结之Vibe Coding前端骨架
前端
JS菌1 小时前
AI Agent 沙箱双层防护体系:从权限过滤到内核隔离的完整实现
前端·人工智能·后端
Aphasia3111 小时前
从输入URL到页面展示全流程
前端·面试
我叫黑大帅2 小时前
前端如何竖屏固定视口背景
前端·javascript·面试
abcy0712132 小时前
python pandas csv异步后台清洗前端优先返回成功信息
前端·python·pandas
IT_陈寒2 小时前
Vite这个坑我帮你踩了,动态导入居然这样才生效
前端·人工智能·后端
swipe2 小时前
Mem0 x Agent 实战系列:分层记忆 + 三路召回,搭建真正可用的长期记忆层
前端·javascript·面试