初始化项目
创建文件夹demo-api
在nodejs环境中,需要先初始化项目:
这时nodejs会在项目中创建package.json文件
如果想要让nodejs支持ES6模块化规范,就需要添加以下配置:
接着安装相关依赖包:
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捕获异常错误