eggjs 怎么实现账单详情页的获取详情接口?
Posted 凯小默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eggjs 怎么实现账单详情页的获取详情接口?相关的知识,希望对你有一定的参考价值。
原型
我们可以打开「掘掘记账本」在线预览 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 的情况
以上是关于eggjs 怎么实现账单详情页的获取详情接口?的主要内容,如果未能解决你的问题,请参考以下文章