前言
这是我参加掘金启航计划的第二篇文章,这次总结的是获取用户信息并联合 mobx 状态管理库,保存全局唯一的用户对象。
本篇文章基于 微信云开发 ,数据从云数据库中取出,使用微信云数据库API进行获取数据,希望观众老爷们多多支持!
1. 获取用户的openid
我们需要获取微信用户的 openid ,通过 openid 获取用户的登录信息。
首先我们需要创建云函数,选中 cloudfunctions 文件夹,右键选择新建 Node.js 云函数,命名为 gitOpenId
然后在该文件夹下的 index.js 中填写以下内容:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {const wxContext = cloud.getWXContext()return {event,openid: wxContext.OPENID,appid: wxContext.APPID,unionid: wxContext.UNIONID,}
}
然后进行选中 gitOpenId 文件夹,右键选择上传并部署即可:
然后打开 app.js,在 globalData 中,添加 openid:
globalData: {openid: ""}
然后在 onLaunch 函数中,使用 gitOpenId 云函数,在小程序打开时,获取用户 openid,并保存到 globalData.openid 中。
onLaunch: function () {wx.cloud.callFunction({name: 'gitOpenId',complete: res => {this.globalData.openid = res.result.openid;}});}
2. 创建用户接口
创建用户接口,操作云数据库中的用户集合,包括创建用户和获取用户信息两个接口。
首先我们需要在云数据库中创建用户集合 users
然后在 utils/database/ 文件夹下,创建 user.js,并书写以下内容:
import dayjs from "dayjs";
function table(name) {return wx.cloud.database().collection(name);
}
//通过openid获取用户信息
async function getUserByOpenid(id) {const {data} = await table("users").where({_openid: id}).get();return data;
}