0-01-API封装案例

初始化项目

创建文件夹demo-api

在nodejs环境中,需要先初始化项目:

1
npm init -y

这时nodejs会在项目中创建package.json文件

如果想要让nodejs支持ES6模块化规范,就需要添加以下配置:

1
"type": "module",

接着安装相关依赖包:

1
npm i express@4.17.1 mysql2@2.2.5

最后注册一个服务器,在根本创建app.js,加入代码:

1
2
3
4
5
6
7
8
9
import express from 'express';

const app = express();

app.listen(80, () => {

console.log('server running at http://127.0.0.1');

});

数据库操作模块

创建db/index.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import mysql from 'mysql2';

const pool = mysql.createPool({

host: '127.0.0.1',

port: 3306,

database: 'my_db_01',

user: 'root',

password: 'amdin123'

});

export default pool.promise();

user_ctrl模块

用于查询数据库中的user模块,获取user数据

创建controller/user_ctrl.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import db from '../db/index.js';

export async function getAllUser(req, res) {

const [rows] = await db.query('select id, username, nickname from
ev_users');

return res.send({

status: 0,

message: '获取用户列表成功!',

data: rows

});

}

user_router模块

用户访问/user路径时,返回用户数据。

创建router/user_router.js:

1
2
3
4
5
6
7
8
9
import express from 'express';

import { getAllUser } from '../controller/user_ctrl.js';

const router = new express.Router();

router.get('/user', getAllUser);

export default router;

然后在app.js中添加对应关系:

1
2
3
import userRouter from '../router/user_router.js';

app.use('/api', userRouter);

处理异常

在user_ctrl.js中添加异常处理机制,保证无法获取到数据时能够正常处理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
try {

const [rows] = db.query(' select id, username, nickname from ev_users
');

return res.send({

status: 0,

message: '获取用户列表成功!',

data: rows

});

}

catch (err) {

return res.send({

status: 1,

message: '获取用户列表失败!',

desc: err.message

})

}

参考:

铺垫知识-25.API接口案例 -
初始化项目

铺垫知识-26.API接口案例 -
创建db数据库操作模块

铺垫知识-27.API接口案例 -
创建user_ctrl模块

铺垫知识-28.API接口案例 -
创建并使用user_router路由模块

铺垫知识-29.API接口案例 -
使用try…catch捕获异常错误


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!