#申请原创# @21小跑堂 @21小跑堂
引:
什么是OPENID?OpenID是微信生态里面最重要的ID,可以理解为OpenID是通过AppID和微信用户ID加密得到的,每个微信应用都会生成一个唯一的用户标识。用于获取用户的信息。
我们通过调用云函数获取OPENID,调用云函数的过程上次已经说明了。
第一步:建立云函数; 第二步:上传部署云函数;
第三步:在应用中进行调用。
这次说一下使用云函数获取OPENID以及使用云函数进行云端数据库的添加数据操作。
一、获取OPENID
建立云函数,并添加如下代码。
- // 云函数入口文件
- const cloud = require('wx-server-sdk')
- cloud.init()
- // 云函数入口函数
- exports.main = async (event, context) => {
- let {OPENID,APPID}=cloud.getWXContext()
- return {
- OPENID,
- APPID
- }
- }
上传和部署云函数。
使用云函数,在index.js文件中增加代码。
- onLoad: function (options) {
- wx.cloud.callFunction({
- name:"AppID",
- data:{
-
- },
- success:res=>{
- console.log(res.result)
- console.log(res.result.OPENID)
- console.log(res.result.APPID)
- this.setData({
-
- })
- }
- })
- },
值得注意的地方,name的名字为刚刚部署的AppID,运行之后我们会在控制台查看到OPENID和APPID。
二、使用云函数进行数据库的添加操作
仍然是三步走,建立云函数,部署上传,使用云函数
建立云函数
- // 云函数入口文件
- const cloud = require('wx-server-sdk')
- cloud.init({
- env: 'yx1000-0gfdbhds20cafd1c',
- traceUser: true,
- })
- const db=cloud.database()
- // 云函数入口函数
- exports.main = async (event, context) => {
- const wxContext = cloud.getWXContext()
- return await db.collection('student').add({
- data:{
- _id:wxContext.APPID,
- name:event.name,
- age:event.age
- }
- })
- }
上传并部署
使用云函数,在index.js中增加以下代码。
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- wx.cloud.callFunction({
- name:'CloudADDdb',
- data:{
- age:"40",
- name:"laowang"
- },
- success:res=>{
- console.log(res.result)
-
- }
- })
- },
进行编译之后。
查看云端。
这里有几点需要注意的,和老刘一起把坑平了。
坑1:云端初始化的时候,没有进行环境ENV的设置,可能造成云端调用不成功。需要进行设置。
- cloud.init({
- env: 'yx1000-0gfdbhds20cafd1c',
- traceUser: true,
- })
坑2:编译后没有反应,不知道哪里出现了问题,这个时候,需要在云端查看原因。
坑3:数据库引用错误,或者根本就不存在这个数据库,需要建立一个student的数据库。
- return await db.collection('student').add
坑4:云函数的名称引用错误,这里需要区分大小写的。
结:
任何标点,大小写都可以造成莫名其妙的错误,对于小白而言是最容易犯的错误,而依靠编译器进行查询错误,往往会遗漏。云函数的操作几个步骤需要记住,按照每个步骤进行,基本上不会有什么问题。建立云函数,上传并部署云函数,使用云函数。
另外return await 其中await是需要等待异步结束才要用到的,如果就一个add,写不写的效果是一样的。
|