eggjs 怎么实现账单详情页的获取详情接口?

Posted 凯小默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eggjs 怎么实现账单详情页的获取详情接口?相关的知识,希望对你有一定的参考价值。

原型

我们可以打开「掘掘记账本」在线预览 http://cost.chennick.wang/detail?id=1548

测试账号:admin,测试密码:111111。

如下:里面需要详情接口,编辑接口,删除接口。

详情接口实现

我们先实现详情接口

1、控制层编写 details 方法

获取账单详情:

  1. 获取参数详情 id
  2. 判空处理
  3. 拿到 token 获取用户信息 user_id
  4. 通过 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 怎么实现账单详情页的获取详情接口?的主要内容,如果未能解决你的问题,请参考以下文章

eggjs 怎么实现账单详情页的删除接口?

eggjs 怎么实现获取账单类型字典接口?

eggjs 怎么实现获取账单列表接口并且实现列表数据分页查询功能?

react + zarm 实现账单详情页以及编辑删除功能

API数据接口获取商品详情数据该怎么操作

eggjs 怎么实现新增账单接口?