微信小程序开发
原文: https://www.cnblogs.com/MrFlySand/p/19122125
微信小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/
01 版本控制

这些按钮都和 Git 版本控制 相关,作用如下:
- 推送:将本地仓库已提交的代码变更,上传到远程仓库(如 GitHub、GitLab 等),让团队成员同步你的修改。
- 抓取:从远程仓库获取最新的代码变更信息,但不会自动合并到本地当前分支(仅拉取“变更记录”,不影响本地代码)。
- 拉取:从远程仓库获取最新代码,并自动合并到本地当前分支(相当于「抓取 + 合并」的组合操作),用于同步远程最新代码到本地。
- 贮藏:临时保存工作区(未提交的)修改,方便切换分支、处理其他任务(之后可通过“应用贮藏”恢复这些修改)。
- 应用贮藏:将之前用“贮藏”保存的修改,恢复到工作区。
- 分支:管理分支的操作(如创建、切换、删除分支等)。分支可让你在不影响主代码的前提下,开发新功能或修复 Bug。
- 合并:将一个分支的代码变更,合并到当前所在分支(比如开发完新功能的 feature分支,合并到master分支)。
官方教程:https://developers.weixin.qq.com/miniprogram/dev/devtools/wechatvcs.html
如下图,红色为以前的代码,绿色为当前代码

设置存储的仓库

ssh密钥认证
要在“微信开发者·代码管理”中添加 SSH 密钥,需分生成密钥、复制公钥、粘贴添加三步:
步骤 1:生成 SSH 密钥对(电脑终端操作)
代码上传到git失败?

- 打开 Git Bash(安装 Git 后自带的终端工具,Windows、Mac、Linux 都可用)。
- 输入命令生成密钥(把"你的邮箱@example.com"换成自己的邮箱,一路回车用默认设置):
 执行后,密钥会保存在系统默认路径(如 Windows 是ssh-keygen -t rsa -C "你的邮箱@example.com"C:\Users\你的用户名\.ssh,Mac/Linux 是~/.ssh),生成两个文件:id_rsa(私钥,自己留着,别泄露)和id_rsa.pub(公钥,需要复制的部分)。

步骤 2:复制公钥内容
- 找到 id_rsa.pub文件(路径参考步骤 1),用记事本/文本编辑器打开。
- 全选并复制文件里的所有内容(从 ssh-rsa开头到邮箱结尾的完整字符串)。
步骤 3:在平台粘贴并添加公钥
- 回到截图的“SSH 密钥”页面,在“在这里粘贴您的公钥”输入框中,粘贴刚复制的公钥内容。
- 在“名称”输入框中,给密钥起个好记的名字(比如“个人电脑 SSH 密钥”)。
- 点击“添加 SSH 密钥”按钮,完成添加。


这样配置后,你的电脑就能通过 SSH 协议(更安全、免密码)与“微信开发者·代码管理”的仓库交互(拉取、推送代码)啦~
02 云开发
【数据同步出错了,让老板痛失 1 个亿!】 https://www.bilibili.com/video/BV1Xvnoz7EKJ/?share_source=copy_web&vd_source=e382d5e4e6b9fca0eddfd09f9d93b3b8
开通“云开发”
- 详情
  
- 复制微信小程序的appID到微信小程序的appID
  
- 代码:添加数据到数据库Users中
const dbUsers = wx.cloud.database().collection('Users') // 引用 Users 集合
//添加数据到数据库Users中
dbUsers.add({
	data: {
		_openId: userInfo.openId,
		nickName: userInfo.nickName,
		avatarUrl: userInfo.avatarUrl,
		createTime: new Date()
	}
})
云开发初始化
- 
将 env设置为自己云开发的id
  
- 
参考 
 ① https://developers.weixin.qq.com/miniprogram/dev/wxcloudservice/wxcloud/guide/init.html
 ② https://www.bilibili.com/video/BV1Uz4y197Uz/?spm_id_from=333.337.search-card.all.click&vd_source=b8e4168387f0df9d4df9652223fb9f4b
 ③ 【小程序云开发之数据库操作】 https://www.bilibili.com/video/BV1Uz4y197Uz/?share_source=copy_web&vd_source=e382d5e4e6b9fca0eddfd09f9d93b3b8
wx.cloud.init({
  env: '修改为自己的云开发“环境ID”'
})

- 登录
  
云函数部署
- 参考链接 https://blog.csdn.net/Pomprogram/article/details/116308475
- 右击文件夹cloudfunctions配置环境
  
- 右击要部署的文件夹,上传所有文件
  
获取用户的openid
参考链接://https://git.weixin.qq.com/wx_wx6bd6054ce20746d1/KuStudy/blob/9cd4157de2f2b06aeb966ad627f43a5cb05e7536/pages/login/login.js
- 文件路径:page\login\login.js,一定要使用wx.cloud.callFunction才能使用云函数。
getUserInfoByTap: function() {
    console.log('用户点击授权登录'); 
    // 使用wx.login获取用户的openid
    wx.login({
      success: (res) => {
        console.log('wx.login返回结果:', res);
        // 检查是否成功获取到code
        if (res.code) {
          // 调用云函数login获取用户openid  
          wx.cloud.callFunction({
            name: 'login',// 云函数名称
            data: {
              code: res.code // 传递登录凭证code到云函数
            },
            success: (loginRes) => {
              console.log('云函数login成功,返回结果:', loginRes);  
            },
            fail: (err) => {
              console.error('云函数调用失败:', err);
              this.handleLoginFail('登录失败,请重试'); 
            }
          })
        }
      }
    })
  },
- 文件cloudfunctions\login\index.js为云函数
// 云函数入口文件
const cloud = require('wx-server-sdk') // 引入微信云开发 SDK
cloud.init({
  env: '你的云开发ID',
}) // 初始化云开发环境
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext();
  return {
    openid: wxContext.OPENID, // 用户唯一标识(核心)
    appid: wxContext.APPID,   // 你的小程序 APPID
    unionid: wxContext.UNIONID // 多端统一标识(需满足 UnionID 获取条件)
  }
};
- app.js中设置初始化云开发环境
onLaunch: function() {
    // 初始化云开发环境
    if (wx.cloud) {
      wx.cloud.init({
        env: 'kustudy2025-2gxdfl2c8d10f3df',
        traceUser: true,
        success: res => {
          console.log('云开发环境初始化成功', res);
          // 缓存云开发环境是否可用的状态
          wx.setStorageSync('cloudEnvAvailable', true);
        },
        fail: err => {
          console.error('云开发环境初始化失败', err);
          // 缓存云开发环境是否可用的状态
          wx.setStorageSync('cloudEnvAvailable', false);
          // 显示友好的提示信息给用户
          wx.showToast({
            title: '云开发环境不可用',
            icon: 'none',
            duration: 2000
          });
        }
      })
    } else {
      console.error('当前微信版本不支持云开发,请升级到最新版本');
      wx.setStorageSync('cloudEnvAvailable', false);
    }
  },
03 数据库
【5★20分钟入门数据库】 https://www.bilibili.com/video/BV1Mm5kzHEWA/?share_source=copy_web&vd_source=e382d5e4e6b9fca0eddfd09f9d93b3b8
第二范式(2NF):消除非主属性对主键的部分依赖。和主键不讲同一件事的单开一张表
- 两张表,1:n的关系,n的那张添加外键
 第三范式(3NF)消除非主属性之间的传递依赖(和主键不是直接相关的移出去)

- m:n 三张表,第三张表两个外键
  
n:m
(一)从数据库中获取信息
// 从数据库获取用户的完整信息,包括K币
const db = wx.cloud.database();
const userResult = await db.collection('Users').where({_openid: openid}).get();
console.log('从数据库获取用户信息结果:', userResult);
如何你获取不到信息,要看看设置权限。设置“所有人可读”,然后再重启小程序。

(二)添加数据到数据库Users中
const dbUsers = wx.cloud.database().collection('Users') // 引用 Users 集合
//添加数据到数据库Users中
dbUsers.add({
	data: {
		_openId: userInfo.openId,
		nickName: userInfo.nickName,
		avatarUrl: userInfo.avatarUrl,
		createTime: new Date()
	}
})
(三)添加数据表到数据库
- 
内容都要改为文本型 
  
- 
将 "(.*)"替换为“$1”,将'(.*)'替换为“$1”,数据中不能存在英文单引号或双引号
  
- 
检查错误 
  
基础功能
获取用户的微信昵称和ID: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
openid:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号