作为h5游戏前端来说,对javascript肯定是很熟悉, 如果不熟悉,那就是被typescript害惨了.
js很强大,不仅仅体现了前端,在服务器端也是大显神威 nodejs,mongodb.
恰巧微信小游戏云开发,nodejs,mongodb正好能用得上。所以我觉得在一款单机游戏中试水云开发,装装13.
万事开头难~~~
在开发之前我关心下面几件事件
1:了解一些概念
2: 小游戏云开发提供了什么?
3:开发环境及鉴权?
4:数据存储调用?
5:怎样调用?
概念:
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,开发者需要进行妥善保存。
openid 是用户唯一标识,且没有过期时间
获取access_token(微信小游戏服务器端) 见 https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/access-token/auth.getAccessToken.html
小游戏云开发提供了 数据库 存储 云函数
作为了一个小游戏开发码农来说, 买服务器,配cdn等都是很麻烦的,小游戏云开发环境都给提供了。
另外能满足基本的需求,但是如果量大的话,花钱买容器嘛。如果数据不好的话,一毛钱的损失都没有。
例子: 在线对战五子棋: 云开发 / 小游戏 https://tencentcloudbase.github.io/
开发环境及鉴权
传统的鉴权:通过access_token
鉴权: 自带鉴权光环,不必是传统一的token形式
环境: 通过配置云开发的根目录(project.config.json中增加了字段 cloudfunctionRoot
用于指定存放云函数的目录)
云函数写好后,要上传到云开发环境
微信小游戏端 初始化云环境后,wx.cloud.init({env:}), 就可以调用云函数了.
获取access_token
const cloud = require('wx-server-sdk')
const rp = require('request-promise')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const page = event.page
const scene = event.scene
//appid和秘钥
const appid = '***',
secret = '***';
const AccessToken_options = {
method: 'GET',
url: 'https://api.weixin.qq.com/cgi-bin/token',
qs: {
appid,
secret,
grant_type: 'client_credential'
},
json: true
};
//获取AccessToken
const resultValue = await rp(AccessToken_options);
const token = resultValue.access_token;
}
// 操作数据库
const wxContext = cloud.getWXContext()
let user = db.collection('user')
let {total} = awaitnew Promise( (resolve, reject)=>{
user.where({ _openid: wxContext.OPENID }).count().then( res=>{
resolve(res)
})
})
let data = {
_openid: wxContext.OPENID,
updateDate:new Date().getTime(),
...event,
}
if( total == 0 ){
data.createDate =new Date().getTime()
return await user.add({ data }).then( res=>{
console.log('新增成功->', res)
return res
}).catch( err=>{
console.log('新增失败',err)
})
}else{
return await user.where({ _openid: wxContext.OPENID }).update({ data }).then( res=>{
console.log('更新成功->', res)
return res
}).catch( err=>{
console.log('更新失败',err)
})
}
数据库增删查改 https://www.jianshu.com/p/1fab91447721
来源:oschina
链接:https://my.oschina.net/u/4303162/blog/3365204