收藏
回答

云函数判断用户名和密码,并添加到用户表,最后返回数据库操作结果和openid?


云函数判断用户名和密码,并添加到用户表,最后返回数据库操作结果和openid?

测试:函数调用成功,添加数据库代码没有执行,返回NULL。

const cloud = require('wx-server-sdk')

// 初始化 cloud

cloud.init({

  // API 调用都保持和云函数当前所在环境一致

  env: cloud.DYNAMIC_CURRENT_ENV

})

const db = cloud.database()

const loguser = "Ts51102186" //测试校验用

const logpwd = "Ts51102186" //测试校验用

/** * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端 * 

 * event 参数包含小程序端调用传入的 data*  */

exports.main = async (event, context) => {

  if (event.loguser == loguser && event.logpwc == logpwd) { //校验用户名密码

    const wxContext = cloud.getWXContext()

    //添加userInfo数据开始

    let userInfo = event.userInfo

    let _id = wxContext.OPENID    

    const _ = db.command

    return await db.collection('UserInfo').doc(_id).update({ //用户已存在更新

      data: {

        style: _.set({

          userInfo: userInfo          

        })

      },

      success: function (res) {

        console.log('更新成功', res.data)

        return {wxContext }      //返回openid 

      }

    }).catch(err => {

      console.log('更新错误', err)

      //用户不存在会抛出异常,在异常中处理新增

       db.collection('UserInfo').add({

        data: {

          _id: wxContext.OPENID,          

          userInfo: userInfo

        },

        success: function (res) {

          console.log('添加成功', res.data)

         return{

           wxContext //返回openid

          }       

        },

        Error: (err => {

          console.log('添加失败', err)

        })

      })

    })

  }

}

回答关注问题邀请回答
收藏

1 个回答

  • 无言
    无言
    发表于小程序端
    2021-01-30
    .doc后面是填数据库记录_id还是openid?
    2021-01-30
    有用
    回复 2
    • 彭
      2021-01-30
      用openid做_id
      2021-01-30
      回复
    • 无言
      无言
      发表于小程序端
      2021-01-31回复
      你把update和add的位置换一下吧
      2021-01-31
      回复
登录 后发表内容
问题标签