小程序云开发判断数据库中是否存在该用户的openid

场景:用户授权登陆拿到用户的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版权协议,转载请附上原文出处链接和本声明。