在之前的篇章中,已经补充完成mysql
的基本知识,那么现在开始,我们需要把mysql
和express
,nodejs
连接起来。
安装依赖
sh
npm install mysql2 express js-yaml
- mysql2 用来连接mysql和编写sq语句
- express 用来提供接口 增删改差
- 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
}
后续更新计划