⼩程序开发之⼗七——云开发能⼒
⽂章⽬录
学习前后
上⼀篇:
下⼀篇:
本地调试与云端调试
⼤家可以把创建时的那⼀⼤坨⽂件都删了,重新开始,留着也⾏,⽤来参考⼀些写法,我们在app.json的pages⾥⾯新建⼀个页⾯作为⾸页,这样显⽰的就只是我们刚刚建的了。
#3# 新建云函数
右键云函数根⽬录,选择新建Node.js云函数,这⾥就命名⼀个test,在index.js修改return值
// 云函数⼊⼝函数
exports.main =async(event, context)=>{
const wxContext = WXContext()
return{
result: event.width * event.height,
}
}
然后右键index.js选择云函数增量上传:更新⽂件,然后终端打开test⽂件输⼊npm install 安装本地Node.js环境
本地测试函数是否正确
可以先本地调试看看函数是否正确再上传云端,右键test⽂件夹,选择本地调试,可能会有点慢,然后将下⾯的代码修改
{
"key":"value"
}
我们云函数⾥⾯的return不是有两个参数width和height吗,然后在这⾥填上,就相当于传⼊参数了,想传其他参数类似。
{
"width":9,
"height":9
}
这⾥是json格式,注意最后⼀个不需要逗号,然后点击调⽤,如果得到的结果是81则表⽰函数正确,九九⼋⼗⼀难嘛。
云端调试云函数
这个操作也差不多,打开云开发控制台跳到云函数标签页,到test点击云端测试,输⼊参数,点击运⾏测试就可以了
结果为81,云函数云端测试正确
⼩程序与云端初始化
我们可以看到之前将过在app.js⽂件⾥⾯的wx.cloud.init是⽤来初始化的
wx.cloud.init({
env:'yq-mouoc',
写文章的小程序traceUser:true,
})
这⾥的 env 只会决定⼩程序端API调⽤的云环境(如云函数、云存储、数据库)
并不会决定云函数中的 API 调⽤的环境。
有点绕⼝,多读⼏遍应该就可以理解了。
云函数中的API调⽤环境也可以初始化
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
cloud.DYNAMIC_CURRENT_ENV设置 API 默认环境等于当前所在环境。
建议所有的云函数都使⽤以上⽅式来初始化
也就是配置env的值为cloud.DYNAMIC_CURRENT_ENV或使⽤你的环境ID,不要为空。
async与await
新建的云函数中会看到下⾯这样的代码
exports.main =async(event, context)=>{
}
async表⽰函数⾥⾯有异步操作,await表⽰紧跟在它后⾯的表达式需要等待结果;
感觉接下来学的获取⽤户信息,图⽚上传跟之前的差不多,就获取的图⽚把清晰度还原,图⽚上传云
端后有不同的名字,之前的是后缀相同会覆盖的,其他的好像也差不多,就不重复,下⼀篇更⼀下云数据库的内容,争取在今晚发出来。
调⽤数据库
刚刚看了下数据库⼀些内容,解决了数据读取为空的问题了,这⾥就继续补充⼀下了,下⼀篇再细讲,这⾥先开个头,不然看着⽂章这么短挺不舒服的,别打我别打我,⼿动狗头保命。
数据库导⼊
数据库下载:
右键链接保存⽂件data.json,然后在云开发控制台的数据库⾥⾯新建⼀个集合data,导⼊该json⽂件,导⼊时会有冲突模式选择。
Insert:总是插⼊新记录
Upsert:如果记录存在则更新,否则插⼊新记录
导⼊后,数据库会⾃动给每条数据加⼀个唯⼀的标识_id
注意
就是这⾥了,没解决待会调⽤数据库就会显⽰为空,因为导⼊数据默认权限是仅创建者可读写,⼩程序端可能就会返回空数组,没权限呀,傻了吧,你没傻,我傻了,卡了良久,还在想为啥读不了数据。。。
仔细观察数据库会发现上⾯有三个选项的,不废话了,直接看图,把权限改成所有⽤户可读,仅创建则可读写就可以读取了。
⼩程序端调⽤数据库
这个过程需要三步,写在页⾯的onload函数⾥⾯就可以在页⾯加载后直接显⽰在控制台了。
1. 先使⽤wx.cloud.database()获取数据库的引⽤(相当于连接数据库);
2. 再使⽤db.collection()获取集合的引⽤;
3. 再通过来获取集合⾥的记录.
const db = wx.cloud.database()
.get()
.then(res =>{
console.log(res.data)
})
.catch(err =>{
<(err)
})
编译后就看可以在控制台看到20条数据库记录了,因为没有指定limit时默认是20条
云函数调⽤数据库
都是函数,云函数当然也可以调⽤了,弄好后可以在云端测试或者本地调试看结果。
const cloud =require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
exports.main =async(event, context)=>{
return llection('data')
.get()
}
本地调试和云端测试前⾯讲过了,⼤家⾃⼰操作。
咕咕鸟
你看我把数据库更了⼀⼩点了,接下来的数据库就咕了吧,好多啊,感觉今晚学不完,啊哈哈哈哈哈哈哈哈,⼈类的本质就是咕咕鸟了,咕咕,⼿动狗头保命。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论