原型
我们可以打开「掘掘记账本」在线预览 http://cost.chennick.wang/detail?id=1548
测试账号:admin,测试密码:111111。
如下:里面需要详情接口,编辑接口,删除接口。
详情接口实现
我们先实现详情接口
1、控制层编写 details 方法
获取账单详情:
- 获取参数详情 id
- 判空处理
- 拿到 token 获取用户信息 user_id
- 通过 user_id id 获取账单详情数据
async details () { const { ctx, app } = this; try { // 1、获取参数 const { id = "" } = ctx.query; // 2、判空处理 if (!id) { ctx.body = { status: 400, desc: '详情id不能为空', data: null } return; } console.log('1、获取查询参数id',id); // 3、拿到 token 获取用户信息 user_id const token = ctx.request.header.authorization; const decode = await app.jwt.verify(token, app.config.jwt.secret); if (!decode) return; let user_id = decode.id; console.log('2、拿到 token 获取用户信息 user_id',user_id); // 4、通过 user_id id 获取账单详情数据 const detailsData = await ctx.service.bill.details(user_id, id); console.log('3、通过 user_id id 获取账单详情数据', detailsData); ctx.body = { status: 200, desc: '请求成功', data: detailsData } } catch(error) { console.log(error); ctx.body = { status: 500, desc: '系统异常', data: null } } }
2、服务层编写 details 方法
获取账单详情数据:
async details(user_id, id) { const { app } = this; try { const result = await app.mysql.get('bill', { id, user_id }); return result; } catch (error) { console.log(error); return null; } }
3、路由配置
// 获取账单详情 router.get('/api/bill/details', verify_token, controller.bill.details);
测试
我们输入参数,不要忘记头部 token。
不传 id 的情况