收藏
回答

用户名密码登录,云函数调用openid并存到数据报错,请帮忙解决?

[云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID fb3e9f78-62b0-11eb-9510-525400f4c87f, cloud function service error code -504002, error message Error: errCode: -1 unknown error | errMsg: Cloud API isn't enabled, please call init first

请先调用 init 完成初始化后再调用其他云 API。init 方法可传入一个对象用于设置默认配置,详见文档。


// 云函数模板

// 部署:在 cloud-functions/login 文件夹右击选择 “上传并部署”


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

const db = cloud.database()

const loguser = "aaa"

const logpwd = "123321"

// 初始化 cloud

cloud.init({

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

  env: cloud.DYNAMIC_CURRENT_ENV

})

/**

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

 * 

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

 */

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

  // 可执行其他自定义逻辑

  // console.log 的内容可以在云开发云函数调用日志查看

  // 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息

  if (event.loguser == loguser && event.loguser == logpwd{ //判断用户名和密码

  const wxContext = cloud.getWXContext()

    //将用户信息添加到数据库,再返回

    await db.collection('userInfo').add({

        // data 字段表示需新增的 JSON 数据

        data: {

          avatarUrl: event.avatarUrl,

          city: event.city,

          country: event.country,

          language: event.language,

          nickName: event.nickName,

          openid: wxContext.OPENID,

          province: event.province,

          sex: event.sex

        }

      })

      .then(res => {

        console.log(res)

        return {

          wxContext,

          event,

          openid: wxContext.OPENID,

          appid: wxContext.APPID,

          unionid: wxContext.UNIONID,

          env: wxContext.ENV,

        }

      })

    //添加userInfo数据结束 

  }

}



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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2021-01-30

    const db = cloud.database() 写到cloud.init后面

    2021-01-30
    有用 1
    回复
登录 后发表内容
问题标签