- 基于 MySQL 数据库 + Express 对外提供用户列表的 API 接口服务
- 搭建项目的基本结构
- 创建基本的服务器
- 创建 db 数据库操作模块
- 创建 user_ctrl 业务模块
-
搭建项目的基本结构
启用 ES6 模块化支持
- 在 package.json 中声明 “type”: “module”
- 安装第三方依赖包
app.listen(8080, () => { console.log(‘server running at http://127.0.0.1‘) })
<a name="nuUH8"></a># 创建 db 数据库操作模块 --- db/index.js```javascriptimport mysql from 'mysql2'const pool = mysql.createPool({host: '127.0.0.1',port: 8080,database: 'my_db_01', // 数据库名称user: 'root', // 数据库用户名password: 'admin123' // 数据库密码})export default pool.promise()
创建 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, username, nickname from ev_users')res.send({status: 0,message: '获取用户列表数据成功',data: rows})}
创建 user_router 模块 —- router/user_router.js
import express from 'express'// 从 user_ctrl.js 模块中按需导入 getAllUser 函数import { getAllUser } from '../controller/user_ctrl.js'// 创建路由对象const router = new express.Router()// 挂载路由规则router.get('/user', getAllUser)// 使用 ES6 的默认导出语法,将路由对象共享出去export default router
使用 try…catch 捕获异常 —- controller/user_ctrl.js
import db from '../db/index.js'// 使用 ES6 的按需导出语法,将 getAllUser 方法导出出去export async function getAllUser(req, res) {try {const [rows] = await db.query('select id, username, nickname from ev_users')res.send({status: 0,message: '获取用户列表数据成功',data: rows})} catch (err) {res.send({status: 1,message: '获取用户列表数据失败',desc: err.message})}}
