返回

小程序+云开发,低成本快速开发实现体重排行榜

前端

前段时间上线的小程序记录体重功能运行基本稳定,没想到还真的有小伙伴们用,而且还热心的反馈问题,真是感谢。刚刚发布了一个体重记录排行榜,记录一下笔记吧。

之前的功能里没有储存用户信息,只是在分享的时候获取昵称和头像生成图片,不过排行榜的功能肯定是需要的,就建了一个users的表,user_id,nickname,gender,avatarURL为必填。

然后是计算排名的问题,按照体重升序排名,那么直接使用排名函数即可,这里用的是云函数,也有文档可供参考。

exports.main = (event, context) => {
  const db = cloud.database()
  const _ = db.command
  const usersCollection = db.collection('users')
  const ranksCollection = db.collection('ranks')

  // 计算排名
  return ranksCollection.add({
    data: {
      rank: _.inc(1)
    }
  }).then(res => {
    // 获取排名
    return ranksCollection.doc(res._id).get()
  }).then(res => {
    // 获取用户信息
    return usersCollection.where({
      user_id: event.user_id
    }).get()
  }).then(res => {
    return {
      rank: res.data[0].rank,
      nickname: res.data[0].nickname,
      gender: res.data[0].gender,
      avatarURL: res.data[0].avatarURL
    }
  })
}

前端方面,很简单,只需要一个getRank的API,返回排名即可。

wx.cloud.callFunction({
  name: 'getRank',
  data: {
    user_id: user_id
  },
  success: res => {
    // 获取排名成功
    console.log(res.result)
  },
  fail: err => {
    // 获取排名失败
    console.log(err)
  }
})

然后就是排行榜的展示了,这里就不赘述了,相信大家都不会陌生。

最后,展示一下效果图:

![图片 1]

![图片 2]

好了,以上就是关于如何使用小程序+云开发快速实现体重排行榜的全部内容了。希望本文能够帮助到大家。