场景:用户授权登陆拿到用户的openid,然后判断用户的openid是否在云数据库中。
因为我的云数据库中不会自动生成_openid字段
直接上代码
login云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
// 查询用户授权登陆的openid
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
login.js
// login云函数查询用户授权登陆的appid,openid
wx.cloud.callFunction({
name: "login",
success(res){
// 授权用户的openid
let openId= res.result.openid
// 判断openid是否存在于数据库
db.collection('userlist').where({
openid:openId
}).get().then(ress => {
// 判断返回的data长度是否为0,如果为0的话就证明数据库中没有存在该数据,然后进行添加操作
if(ress.data.length==0){
// 云函数添加
wx.cloud.callFunction({
name:"userlistadd", //该名字是云函数名字
data:{
appid: res.result.appid ,//_openid 等参数是要回传给云函数的入参
openid: openId,
userInfo: event.detail.userInfo
},
success: resss => {
console.log('[userlistadd云函数]新增信息成功!! ', event.detail.userInfo)
},
fail: err => {
console.error('[userlistadd云函数]调用失败', err)
}
})
// 用户已经存在数据库中,可以直接跳转到主界面
}else{
console.log("用户已经存在")
wx.navigateTo({
url: '/pages/index/index'
})
}
})
},fail(res){
console.log("云函数login调用失败")
}
})
增加函数的话就不放了,因为这是我自己的增加函数,增加函数网上很多都差不多,然后我只是分享一下这个我在网上找不到的方法,可能每个人的想法不一样吧,我试过很多其他的方法但是没有成功,然后这是对于我最来说能理解的方法,分享给你们
版权声明:本文为qq_45179408原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。