eggjs 怎么实现账单详情页的编辑接口?

简介: eggjs 怎么实现账单详情页的编辑接口?

编辑接口实现


下图我们可以看到,能修改的东西有支出还是收入,时间,账单类型,备注,数量。

d1af7b2a47db49b7a502e78c152aa832.png


1、控制层编写 update 方法

获取账单详情

async update () {
  const { ctx, app } = this;
  // 1、获取请求中携带的参数
  const { id, amount, type_id, type_name, date, pay_type, remark = '' } = ctx.request.body;
  // 2、判空处理
  if (!id || !amount || !type_id || !type_name || !date || !pay_type) {
    ctx.body = {
      status: 400,
      desc: '参数错误',
      data: null
    }
    return;
  }
  console.log('1、获取请求中携带的参数', {id, amount, type_id, type_name, date, pay_type, remark});
  try {
    // 3、拿到 token 获取用户信息
    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;
    // 4、更新数据
    const result = await ctx.service.bill.update({
      id, // 账单 id
      amount, // 金额
      type_id, // 消费类型 id
      type_name, // 消费类型名称
      date, // 日期
      pay_type, // 消费类型
      remark, // 备注
      user_id // 用户 id
    });
    console.log('4、更新数据', result);
    ctx.body = {
      status: 200,
      desc: '更新成功',
      data: null
    }
  } catch (error) {
    ctx.body = {
      status: 500,
      desc: '系统错误',
      data: null
    }
  }
}


2、服务层编写 update 方法

获取账单详情数据

async update(params) {
  const { app } = this;
  try {
    const result = await app.mysql.update('bill', { ...params }, {
      where: {
        id: params.id,
        user_id: params.user_id
      }
    });
    return result;
  } catch (error) {
    console.log(error);
    return null;
  }
}


3、路由配置

// 更新账单信息
router.get('/api/bill/update', verify_token, controller.bill.update);



测试


我们输入参数,不要忘记头部 token。

我们修改 id 为1的数据,user_id 为 5.

151882a2927b42518989c356a5f54cec.png


成功之后我们刷新数据库看看,发现已经更新成功

4a8bc989411f476da8dd3a207117c36f.png



如果缺失必填参数,就会报错提示


517afa83607f4a198f9eb076d02d2f80.png







目录
相关文章
|
SQL 小程序 前端开发
【易售小程序项目】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】
【易售小程序项目】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】
126 0
|
6月前
|
XML JSON API
开发者必备:淘宝商品列表接口集成全攻略
淘宝开放平台提供的商品列表数据接口让开发者编程获取商品列表数据。接口支持按关键词、类目等查询条件获取商品详情,包括标题、价格等信息。具备灵活性高、数据丰富及操作便捷等特点。使用流程包括注册账号、构建并发送HTTP请求及处理响应数据。可用于电商数据分析、商品推荐等场景。开发者需遵守规定确保数据安全合法。[体验API](c0b.cc/R4rbK2)
|
6月前
|
前端开发 开发工具 数据库
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
支付系统资料-青戈版沙箱支付,订单编号样式设计,还有七天无理由退款,常与会员系统相搭配,内网穿透客户看到页面,前端展示,直播过程所有都能访问的写法
|
开发者
【 uniapp - 黑马优购 | 购物车页面(1)】如何创建购物车编译模式、 商品列表区域实现
【 uniapp - 黑马优购 | 购物车页面(1)】如何创建购物车编译模式、 商品列表区域实现
293 0
|
8月前
|
小程序 安全 搜索推荐
【社区每周】订单中心新增30+状态模板;《小程序安全开发指引》正式发布(2022年7月第二期)
【社区每周】订单中心新增30+状态模板;《小程序安全开发指引》正式发布(2022年7月第二期)
78 0
|
小程序 前端开发
【易售小程序项目】修改“我的”界面前端实现;查看、重新编辑、下架自己发布的商品【后端基于若依管理系统开发】
【易售小程序项目】修改“我的”界面前端实现;查看、重新编辑、下架自己发布的商品【后端基于若依管理系统开发】
104 0
|
小程序
发布 ivx页面(1)写用户协议页面
发布 ivx页面(1)写用户协议页面
159 0
|
数据库 数据安全/隐私保护
eggjs 怎么实现账单详情页的删除接口?
eggjs 怎么实现账单详情页的删除接口?
89 0
eggjs 怎么实现账单详情页的删除接口?
|
数据安全/隐私保护
eggjs 怎么实现账单详情页的获取详情接口?
eggjs 怎么实现账单详情页的获取详情接口?
80 0
eggjs 怎么实现账单详情页的获取详情接口?