API接口案例
1.案例需求
基于MySQL数据库 + Express对外提供用户列表的API接口服务.用到的技术点如下:
- 第三方包express和mysql2
- ES6模块化
- Promise
- async/await
2.主要的实现步骤
- 搭建项目的基本结构
- 创建基本的服务器
- 创建db数据库操作模块
- 创建user_ctrl业务模块
- 创建user_router路由模块
3.搭建项目的基本结构
1.启用ES6模块化支持
在package.json中声明"type":“module”
2.安装第三方依赖包
npm install express@4.17.1 mysql2@2.2.5
4.创建基本的服务器
创建入口 app.js
import express from 'express'
const app = express()
app.listen(80, () => {
console.log('server running at http://127.0.0.1')
})
5.创建db数据库操作模块
创建db文件夹->index.js
import mysql from 'mysql2'
const pool = mysql.createPool({
host: '127.0.0.1',
port: 3306,
database: 'my_db_01',
user: 'root',
password: 'root'
})
export default pool.promise()
6.创建user_ctrl模块
创建controller文件夹->user_ctrl.js
import db from '../db/index.js'
// 使用 ES6 的按需导出语法,将 getAllUser 方法导出出去
export async function getAllUser(req, res) {
const [rows] = await db.query('select id,name,age from user')
res.send({
status: 0,
message: '获取用户列表数据成功!',
data: rows
})
}
7.创建user_router模块
创建router文件夹->user_router.js
import express from 'express'
import { getAllUser } from '../controller/user_ctrl.js'
const router = new express.Router()
router.get('/user', getAllUser)
export default router
8.将user_router模块挂载到app.js
在这里插入代码片import express from 'express'
import userRouter from './router/user_router.js'
const app = express()
app.use('/api', userRouter)
app.listen(80, () => {
console.log('server running at http://127.0.0.1')
})