问题来源
开发时想实现一个集合记录当前比赛信息(即下文
当前集合
),另一个集合记录所有历史比赛的信息(即下文历史集合
),每次比赛结束时就需要将当前比赛的信息迁移到历史集合中
实现思路
1.调用云函数获取accesstoken
2. 调用云函数将当前集合
信息导出为文件
3. 调用云函数查看步骤2
导出状态
4.步骤3
查看状态为成功时下载文件
5. 上传步骤4
下载的文件到云存储
6. 从云存储导入到历史集合
由于尚未熟练掌握同步异步机制,具体实现采用了原始粗暴的
promise风格
,同时为了保证代码的可读性将每个步骤封装成一个个函数。实现过程中调用了比较多的库函数,如对参数含义有疑问请移步官方文档或留言提问,我会尽我所能解答
具体实现如下
1.调用云函数获取accesstoken
onLoad: function (options) {
// 1.调用云函数获取accesstoken
let that = this
wx.cloud.callFunction({
name: "getToken",
success(res) {
console.log(res)
that.setData({
access_token: JSON.parse(res.result).access_token
})
console.log(that.data.access_token)
},
fail(res) {
console.log("getToken云函数失败", res)
}
})
},
其中云函数
getToken
如下,你的APPID
和小程序密钥
换成对应信息,如不知道请自行百度
// 云函数入口文件
const cloud = require('wx-server-sdk')
const got = require('got')
cloud.init()
exports.main = async (event, context) => {
let res = await got('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的APPID&secret=小程序密钥')
return res.body
}
2. 调用云函数将<