后台编写云函数
首先在后台开通云开发
在编辑器里点击按钮,创建环境
配置云函数文件夹路径
在project.config.json中,增加cloudfunctionRoot
同时在assets同级新建文件夹,名字要匹配
创建云函数
在云开发后台创建后,同步下来的函数只有index.js,所以在编辑里新建
输入云函数名字,此时会更新一个新的文件夹
我们需要在index.js里添加代码
// 云函数入口文件
const cloud = require('wx-server-sdk')
//首先调用cloud.init()进行初始化
cloud.init()
//获取数据库(数据库自行创建,类似mongodb)
const db = cloud.database()
//获取集合
const todos = db.collection('UserInfo')
//查询的最大条数
const MAX_LIMIT = 100
// 云函数入口函数
/*
event 指的是触发云函数的事件,当小程序端调用云函数时,event 就是
小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。
context 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。
*/
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const {OPENID} = wxContext;
const tasks = await todos.orderBy('score','desc').limit(MAX_LIMIT).get();
let userData = await todos.where({openid:OPENID}).get();
return {
res : tasks,
mydata : userData
}
}
编写好代码后,右键文件夹进行上传
这样就完成了一个云函数的创建和部署
CocosCreator使用云函数
//------------------------云开发-----------------------
public cloudInit(){
wx.cloud.init()
}
public callCloudFunction(funName,option,succ?,fail?){
wx.cloud.callFunction({
name : funName,
data : option,
success : succ,
fail : fail
})
}
在使用之前切记先调用wx.cloud.init()
funName 为之前创建的云函数名称
option 则为云函数收到的event
.callCloudFunction(
'uploadNameHead',
{
score: StorageManager.getSingleBestScore(),
nickname: info.nickName,
headurl: info.avatarUrl
},
(res) => {
Log('调用云函数uploadNameHead成功 ', res)
}
)