日志中:
报错结果如下:{"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"TypeError: Cannot read property 'OPENID' of undefined\n at Runtime.exports.main [as handler] (/var/user/index.js:113:32)\n at processTicksAndRejections (internal/process/task_queues.js:97:5)","statusCode":430}
Request ID如下
Request ID: 2f92bef7-ee36-4a52-bc6f-1ac91beadc5d
拜托大佬们教教我一下
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { const wxContext = await cloud.getWXContext() console.log('成功获取用户信息') console.log(wxContext) // 检验用户的数据是否是正常获取 -start if(wxContext.OPENID == undefined){ var result = {} result.errCode = 1 result.errMsg = '未正常获取用户的信息,请重试!' var data = {} result.data = data return result } // 检验用户的数据是否是正常获取 -end // 校验参数是否是必传 -start if(event.avatarUrl == undefined){ var result = {} result.errCode = 2 result.errMsg = '未传入必要参数,请重试!' var data = {} result.data = data return result } if(event.gender == undefined){ var result = {} result.errCode = 2 result.errMsg = '未传入必要参数,请重试!' var data = {} result.data = data return result } // 校验参数是否是必传 -end const db = cloud.database() //根据用户的openid获取用户信息,如果没有正常获取则创建新的用户数据 -start var user; await db.collection('Users') .where({ openid:wxContext.OPENID }).get() .then( res => { console.log('获取用户信息成功') console.log(res.data) user = res.data[0] }) //根据用户的openid获取用户信息,如果没有正常获取则创建新的用户数据 -end // 没有获取到用户数据,创建新的用户数据 -start if(user == undefined){ to_add_data = { //昵称 nickName: event.nickName, //头像 avatarUrl: event.avatarUrl, // 性别 gender: event.gender, //用户识别码 openid: wxContext.OPENID, //是否为管理员,默认为0 is_admin: 0, //记录时间 signTime: new Date(), //默认登录情况 isLogined: true, //默认信息绑定情况 isRegistered: false, } console.log('新构造的用户数据') console.log(to_add_data) //新增结果 var add_result = {} await db.collection('Users').add({ data:to_add_data }).then(res =>{ console.log('新增用户成功') console.log(res) //该用户的数据记录的标签 add_result = res._id }) } // 没有获取到用户数据,创建新的用户数据 -end // 如果获取到用户数据,更新数据库中的数据 -start else{ await db.collection('Users') .where({ openid:wxContext.OPENID }) .update({ data:{ //昵称 nickName: event.nickName, //头像 avatarUrl: event.avatarUrl, //性别 gender: event.gender } }) .then(res=>{ console.log('更新成功!') console.log(res) }) } // 如果获取到用户数据,更新数据库中的数据 -end //查询用户的最新信息,返回给前端 -start await db.collection('Users') .where({ openid:wxContext.OPENID }) .field({ nickName: true, avatarUrl: true, gender: true, signTime: true, is_admin: true, isLogined: true, isRegistered: true, }) .get().then(res =>{ console.log('获取用户数据成功') console.log(res.data) uesr = res.data[0] }) var result = {} if(add_result){ result.errCode = 0 result.errMsg ='新增用户成功' }else{ result.errCode = 0 result.errMsg = '该用户已经注册过,用户信息已经更新!' } var data = {} data.user = user result.data = data return result //查询用户的最新信息,返回给前端 -end }