小程序编译出错,求大佬指点

你检查一下app.globalData里面写了openid没

检查logincheck.js中获取openID的地方

这个有什么问题么

信息上提示是63行

把完整代码贴一下

const app = getApp();

const regeneratorRuntime = require('../utils/runtime.js')

const WXBizDataCrypt = require('../utils/RdWXBizDataCrypt.js');

 

// 获取数据库引用

const db = wx.cloud.database();

const userListDB = db.collection('userlist');

Page({

  data: {

    isRegister: 0,

    isNoRegister: 0,

    isNoUserInfoCheck: 0,

  },

  toQandA() {

    wx.navigateTo({

      url: '../qAndA/qAndA',

    })

  },

  //返回此页面时使用

  onShow() {

    let flag = app.globalData.orgPage.type;

    if (flag == 3) {

      wx.redirectTo({

        url: '../navbar/navbar',

      })

    }

  },

  async onLoad(query) {

 

    //获取机构名称和配置信息

    await wx.cloud.callFunction({

      name: "getAllUnion"

    }).then(res => {

      console.log(res.result.data);

      app.globalData.isNoUserInfoCheck = res.result.isNoUserInfoCheck;

      app.globalData.isBleOnly = res.result.isBleOnly;

      app.globalData.isNoRegister = res.result.isNoRegister;

      app.globalData.keyName = res.result.keyName;

      app.globalData.allUnion = res.result.data;

      app.globalData.registerType = res.result.registerType;

      app.globalData.listRule = res.result.listRule;

      app.globalData.showNotice = res.result.showNotice;

      app.globalData.isShowNotice = res.result.isShowNotice;

      app.globalData.isShowNoticeIndex = res.result.isShowNoticeIndex;

      app.globalData.showNoticeIndex = res.result.showNoticeIndex;

      console.log(app.globalData.allUnion);

      console.log("输出全部配置信息")

      console.log(app.globalData)

    })

 

    let globalData = app.globalData;

    console.log(globalData)

    for (var Key in globalData) {

      console.log(Key + ':' + globalData[Key]);

    }

    this.setData({

      globalData: globalData

    })

    console.warn(typeof this.data.globalData)

 

    let isNoUserInfoCheck = this.data.globalData.isNoUserInfoCheck;

 

    let isNoRegister = this.data.globalData.isNoRegister; //指定无需注册的体验模式

    console.log(isNoRegister)

 

    this.setData({

      isNoUserInfoCheck: isNoUserInfoCheck,

      isNoRegister: isNoRegister,

    })

 

    //指定用户自动登录

    if (this.data.isNoUserInfoCheck) {

      app.globalData.openid = 'og4vT5JjRgKaq_Zr7043RmJrHT4w';

      this.checkRegister();

    }



 

    this.getUser(); //注册第一步获取openid

    //检测参数

    let scene = decodeURIComponent(query.scene)

    console.log('二维码信息为');

    console.log(scene);

    //测试用

    //scene ='26b301645d39b4a2028db6467c4bf187';

    if (scene.length != 32) {

      console.log('没有带参数');

    } else {

      //跳转查看物品

      console.log(scene);

      app.globalData.orgPage = {

        type: 1, //物品页

        _id: scene

      }

    }




 

  },

  autoRister() {

    let groupNames = ['格兰芬多', '赫奇帕奇', '拉文克劳', '斯莱特林'];

    let key = parseInt(4 * Math.random());

    userListDB.add({

      data: {

        config: {

          isNew: 1,

          isOCR: 0,

        },

        qqNumber: '123456',

        date: '可选',

        unionName: '体验组织', //增加的组织名称字段!!!!!!!!!

        groupName: groupNames[key],

        mail: 'test@qq.com',

        major: '其他',

        name: '体验账号',

        phonecall: '123456',

        province: '可选',

        stuYear: '可选',

        stuid: '777777777',

        type: '管理员',

        userInfo: app.globalData.userInfo,

        creatTime: db.serverDate(),

        isCheck: ''

      },

    }).then(res => {

      wx.hideLoading();

      wx.redirectTo({

        url: '../logincheck/logincheck',

      })

    }).catch(err => {

      wx.showModal({

        title: '注册失败',

        content: String(err),

      })

    })

  },

 

  checkRegister() { //检查用户是否已经注册

    let _this = this;

    console.log(app.globalData.openid)

    userListDB.where({

      _openid: app.globalData.openid // 填入当前用户 openid

    }).get({

      async success(res) {

        console.log(res.data)

        //初始注入用户数据!!!!!!!!

        app.globalData.USER = res.data[0];


 

        if (res.data.length == 0) { //查询数据库中是否有用户数据

          if (app.globalData.isNoRegister && !(app.globalData.isWxwork)) {

            wx.showLoading({

              title: '获取体验权限中',

            })

            _this.autoRister();

          } else {

            //对于企业微信将直接获取信息不需要注册

            if (app.globalData.isWxwork) {

              //企业微信注册逻辑

              _this.wxworkRegister()

            } else {

              wx.redirectTo({

                url: '../registerOcr/registerOcr',

              })

            }

          }

        } else {

          //如果是企业微信则需要校验是否有userid字段

          //多身份切换考虑用户拥有多个身份

          if (app.globalData.isWxwork) {

            //console.warn('测试模式')

            // console.log(typeof (res.data[0].userid))

 

            //获取授权token

            console.log('开始获取userid')

            let ID = 'wwd6b6f0333869ca28'; //企业id

            let SECRECT = '69usvQVy2RZ9HBQj-wxKxbbZH3vAKJrCeitCsMWmMCQ' //应用key

            let wxworkUserSerct = await app.getWxworkSerct(ID, SECRECT)

            let userid = wxworkUserSerct.userid;

            let corpid = wxworkUserSerct.corpid; //当前企业的corpid

            //console.log(wxworkUserSerct)

            let allUnion = app.globalData.allUnion;

 

            let currentUnionName;

 

            let userUnionName = app.globalData.USER.unionName;

 

            console.log(userUnionName)

            console.log(allUnion)

            let currentGroupName;

 

            for (let index in allUnion) { //将当前企业id换成名称

              if (allUnion[index].corpid == corpid) {

                console.log('当前企业名称为')

                currentUnionName = allUnion[index].unionName

                currentGroupName = allUnion[index].groupName[0]

                console.log(allUnion[index].unionName)

                break;

              }

            }

 

            //比较企业名称 不一样则需要 将用户的机构名称更改

            //并更新userid的值,同时需要将小组名称改为未选择

            //权限不变

 

            if (currentUnionName != userUnionName) { //将用户的机构名称改为当前企业的名称

              wx.showLoading({

                title: '切换机构中',

                icon: 'none'

              })

              await wx.cloud.callFunction({

                name: 'editUnionName',

                data: {

                  unionName: currentUnionName,

                  userid: userid,

                  groupName: currentGroupName

                }

              }).then(res => { //转换后重新登录

                wx.hideLoading();

                wx.redirectTo({

                  url: '../logincheck/logincheck',

                })

              })

            }



 

            if (typeof (res.data[0].userid) == "undefined" || res.data[0].userid == '') { //需要获取userid

              wx.cloud.callFunction({

                name: 'editUserID',

                data: {

                  userid: userid,

                  _openid: res.data[0]._openid

                }

              }).then(res => {

                console.log(res)

              })

            }

          }

 

          //“物品码 跳转逻辑”

          let flag = app.globalData.orgPage.type;

          if (flag == 0) {

            wx.redirectTo({

              url: '../navbar/navbar',

            })

          } else if (flag == 1) { //到物品详情页

            let data = app.globalData.orgPage._id;

            //返回自动恢复初始化

            app.globalData.orgPage.type = 3;

            wx.navigateTo({

              url: '../itemDetail/itemDetail?data=' + data

            })

          }

        }

 

      },

      fail: function (err) {

        wx.showModal({

          title: '错误',

          content: err,

        })

      }

    })


 

  },

  getUserInfo: function () {

    // 查看是否授权

    let _this = this;

    wx.getUserInfo({

      success: function (res) {

        app.globalData.userInfo = res.userInfo

        console.log(app.globalData.userInfo)

        _this.checkRegister()

        _this.setData({

          isRegister: 0

        })

      },

      fail: function (err) {

        _this.setData({

          isRegister: 1

        })

      }

    })

  },

 

  async wxworkRegister() { //企业微信注册逻辑

 

    //获取信息

    //获取机构信息,电话,等。

 

    //获取授权token

    let ID = 'wwd6b6f0333869ca28'; //企业id

    let SECRECT = '69usvQVy2RZ9HBQj-wxKxbbZH3vAKJrCeitCsMWmMCQ' //应用key

    let wxworkUserSerct = await app.getWxworkSerct(ID, SECRECT)

    console.log('多重promise调试')

    console.log(wxworkUserSerct)

 

    app.globalData.corpid = wxworkUserSerct.corpid

 

    console.log('调用企业微信api获取用户信息')


 

    let userInfo = await new Promise((resolve, reject) => {

      wx.qy.getEnterpriseUserInfo({

        success: function (res) {

          var userInfo = res.userInfo

          var name = userInfo.name

          var gender = userInfo.gender //性别 0:未知、1:男、2:女

          //console.log(userInfo)

          resolve(userInfo)

        }

      })

    })


 

    let Phone = await new Promise((resolve, reject) => {

      wx.qy.getMobile({

        success: function (res) {

          console.log(res.encryptedData)

          console.log(res.iv)

          let appId = 'wx6b72c910779512f9'

          var pc = new WXBizDataCrypt(appId, wxworkUserSerct.session_key);

          var data = pc.decryptData(res.encryptedData, res.iv);

          console.log('解密后 电话号码: ', data)

          resolve(data)

        }

      })

    })

 

    let Email = await new Promise((resolve, reject) => {

      wx.qy.getEmail({

        success(res) {

          console.log(res.encryptedData)

          console.log(res.iv)

          let appId = 'wx6b72c910779512f9'

          var pc = new WXBizDataCrypt(appId, wxworkUserSerct.session_key);

          var data = pc.decryptData(res.encryptedData, res.iv);

          console.log('解密后邮箱: ', data)

          resolve(data)

 

        }

      })

    })

 

    console.log('同步获取wxwork个人信息接口')

    console.log(userInfo)

    console.log(Phone)

    console.log(Email)

    let corpid = app.globalData.corpid //公司id

    let allUnion = app.globalData.allUnion //获取所有组织

    let userid = wxworkUserSerct.userid

    let flag = 0

    let union = ''

 

    console.log(corpid)

    for (let i = 0; i < allUnion.length; i++) {

      if (allUnion[i].corpid == corpid) {

        if (allUnion[i].corpid != '') {

          flag = 1;

          union = allUnion[i];

          break;

        }

      }

    }

    if (!flag) { //小程序未绑定企业信息

      wwx.showModal({

        title: '提示',

        content: '管理员未绑定机构信息',

      })

      return

    }

 

    console.log(union)

 

    //选择分组信息

 

    /*

    wx.showActionSheet({

      itemList: ['A', 'B', 'C'],

      success(res) {

        console.log(res.tapIndex)

      },

      fail(res) {

        console.log(res.errMsg)

      }

    })

    */

 

    //企业微信体验模式相关逻辑

    let type = '普通成员'

    let groupName = '未选择'

 

    let groupNames = ['格兰芬多', '赫奇帕奇', '拉文克劳', '斯莱特林'];

    let key = parseInt(4 * Math.random());

 

    if (union.unionName == '体验组织') {

      type = '管理员'

      groupName = groupNames[key]

    }

 

    //信息注入数据库

    userListDB.add({

      data: {

        config: {

          isNew: 0,

          isOCR: 0,

        },

        userid: userid, //企业微信特有字段

 

        qqNumber: '123456',

        date: '可选',

        unionName: union.unionName, //增加的组织名称字段!!!!!!!!!

        groupName: groupName,

        mail: Email.email,

        major: '可选',

        name: userInfo.name,

        phonecall: Phone.mobile,

        province: '可选',

        stuYear: '可选',

        stuid: '可选',

        type: type,

        userInfo: app.globalData.userInfo,

        creatTime: db.serverDate(),

        isCheck: ''

      },

    }).then(res => {

      //发送通知通知管理员

      console.log('注册成功');

      wx.redirectTo({

        url: '../logincheck/logincheck',

      })

    }).catch(err => {

      wx.showModal({

        title: '注册失败',

        content: String(err),

      })

    })



 

  },

 

  getUser() {

    // 调用云函数

    let _this = this;

    wx.cloud.callFunction({

      name: 'login',

      data: {},

      success: res => {

        console.log('[云函数] [login] user openid: ', res.result.openid)

        app.globalData.openid = res.result.openid

        console.log(app.globalData.openid)

        _this.getUserInfo();

      },

      fail: err => {

        console.error('[云函数] [login] 调用失败', err)

      }

    })

  }


 

})