百战商城商品数据云函数化改造总结_百战_3

百战商城商品数据云函数化改造总结

一、核心目标

将首页商品列表数据从本地写死数据/HTTP请求,迁移到云开发数据库+云函数调用。

二、实施步骤

1. 准备商品数据

  • 创建云数据库集合:goose
  • 导入准备好的 goose.json 测试数据
  • 确认字段结构:idnametagimageprice

2. 创建云函数

  • 新建云函数:goose_data
  • 核心功能:从 goose 集合分页查询数据

3. 云函数代码逻辑

javascript 复制代码
const db = cloud.database()

exports.main = async (event, context) => {
  const page = event.page || 1  // 接收页码参数
  const skipNum = (page - 1) * 10  // 计算跳过的数据量
  
  return  db.collection('goose')
    .skip(skipNum)
    .limit(10)
    .get()
}

4. 前端调用改造

原HTTP请求:

javascript 复制代码
// 注释掉原有HTTP请求
// wx.request({...})

改为云函数调用:

javascript 复制代码
wx.cloud.callFunction({
  name: 'goose_data',
  data: {
    page: this.data.page
  }
}).then(res => {
  // 处理返回数据
})

5. 数据处理优化

  • 数据合并:上拉加载时,将新数据追加到原有数据后
  • 空数据判断:当返回数组长度为0时,提示"暂无数据"
  • 页码管理:触底时自动增加页码,实现分页加载

三、关键代码片段

数据合并逻辑

javascript 复制代码
  wx.cloud.callFunction({
          name: 'goose_data',
          data: {
            page: this.data.page
          }
        }).then(res => {
          //console.log(res.result.data)
          this.setData({
            goodsData:this.data.goodsData.concat(res.result.data)
          })
        })

空数据提示

javascript 复制代码
if (res.result.data.length === 0) {
  wx.showToast({
    title: '被你看光了~',
    icon: 'none'
  })
}

四、注意事项

  1. 云函数部署:修改后务必"上传并部署"
  2. 数据格式:确保云函数返回数据格式与原数据结构一致
  3. 分页计算 :正确计算 skip 值实现分页
  4. 加载状态:合理管理加载状态,避免重复请求

五、效果验证

  • 首次加载显示前10条数据
  • 上拉触底加载下一页数据
  • 数据加载完毕后显示友好提示
  • 总数据量正确展示(26条数据)

六、扩展思考

  1. 可添加搜索功能,在云函数中实现按名称搜索
  2. 可添加分类筛选功能
  3. 可优化图片加载,使用云存储CDN加速

通过本次改造,项目数据管理更加规范,为后续功能扩展打下基础。

相关推荐
未来的旋律~7 分钟前
sqlilabs注入靶场搭建与sql语句
数据库·sql
一个天蝎座 白勺 程序猿23 分钟前
KingbaseES查询逻辑优化深度解析:从子查询到语义优化的全链路实践
开发语言·数据库·kingbasees·金仓数据库
我真的是大笨蛋31 分钟前
InnoDB行级锁解析
java·数据库·sql·mysql·性能优化·数据库开发
云边散步39 分钟前
godot2D游戏教程系列二(4)
笔记·学习·游戏开发
BORN(^-^)1 小时前
《产品经理方法论》阅读笔记
笔记·产品经理
jrlong1 小时前
DataWhale大模型基础与量化微调task4学习笔记(第 2 章:高级微调技术_RLHF 技术详解)
笔记·学习
傻小胖1 小时前
13.BTC-思考-北大肖臻老师客堂笔记
笔记·区块链
山茶花.1 小时前
SQL注入总结
数据库·sql·oracle
m0_736919102 小时前
超越Python:下一步该学什么编程语言?
jvm·数据库·python
m0_748229992 小时前
ThinkPHP快速入门:从零到实战
c语言·开发语言·数据库·学习