首页 > 编程语言 >微信小程序开发周记(11.27-12.3)

微信小程序开发周记(11.27-12.3)

时间:2023-12-03 23:13:35浏览次数:50  
标签:调用 函数 微信 数据库 程序开发 程序 12.3 cloud wx

第二周周报(部分)

云开发相关

云开发是管理微信小程序的后端数据库、运营数据等逻辑核心的平台。

前置前置知识

资源环境

用户开通云开发后即创建了一个独立的环境,包括数据库、存储空间、云函数等一整套云开发资源。实际开发中,建议每个正式环境都搭配一个测试环境,所有功能都在测试环境上测试完毕后迁移到正式环境。

账号

云开发所对应的账号权益相关。

详见基础概念 / 重要概念 / 账号

概念引入

数据库

云开发提供了 JSON 数据库,每条记录是一个 JSON 格式对象。一个数据库有多个集合,集合可以看作一个 JSON 数组,数组中每个对象就是一条记录。

关系型数据库:

数据通常存储在一个二维表中,行是记录,列是属性;其他概念如下:

  • 主键(Primary Key):用于唯一标识每一行记录的列。唯一,且不为空。
  • 外键(Foreign Key):用于建立表和表之间关系的列,指向另一个表中的主键。
  • 关系、SQL 等概念。

MySQL等都是常见的关系型数据库。

eg.图书记录

[
	{
        "_id": "Wzh76lk5_O_dt0vO", 
        "title": "Book 1",
        "author": "Null",
        "characters": [
            "A",
            "B",
            "C"
        ],
        "publishInfo": {
            "year": 2023,
            "country": ""
        }
    },
    {
        "_id": "Wzia0lk5_O_dt0vR",
        "_openid": "ohl4L0Rnhq7vmmbT_DaNQa4ePaz0",
        ...
    }
]

其中,_id 是一条记录的唯一标志;其他字段都可以叫做 JSON 对象,可以是对象或数组;_openid 标志记录的创建者(需要注意的是管理员创建的记录不会有此字段,如在管理端(控制台和云函数)创建的记录),开发者可以自行定义 _id 而不能自定义 _openid

API

数据库 API 分为小程序端和服务端两部分。小程序端 API 调用权限控制严格,开发者可在小程序内直接调用 进行非敏感数据操作;服务端 API 可以操作更高安全要求的数据,在云函数内操作,其环境与客户端完全隔离。

存储

云开发提供了一块存储空间,可以在小程序端和云函数端通过 API 使用。

eg. 在小程序内让用户选择一张图片,然后上传到云端管理:

// 让用户选择一张图片
wx.chooseImage({
  success: chooseResult => {
    // 将图片上传至云存储空间
    wx.cloud.uploadFile({
      // 指定上传到的云路径
      cloudPath: 'my-photo.png',
      // 指定要上传的文件的小程序临时文件路径
      filePath: chooseResult.tempFilePaths[0],
      // 成功回调
      success: res => {
        console.log('上传成功', res)
      },
    })
  },
})

wx.chooseImage 是微信小程序提供的 API,允许用户从手机相册中选择一张图片。此处我们传入一个对象,包含一个 success 回调函数。这个函数会在用户成功选择图片后被调用,选择的图片信息会以参数的形式传递给 chooseResult

接下来,在 wx.cloud.uploadFile 函数中有一些参数。其中 filePath 参数指要上传的文件的小程序临时路径,从 chooseResult 中获取。

云函数

云函数指一段运行在云端的代码。需要注意的是此时在小程序等端口调用这些函数需要创建请求。

故在云函数中,要获得每次请求的上下文信息(如 appidopenid 等)。这可以使用 wx-server-sdk 提供的 getWXContext 方法。

eg. 定义一个名字为 add 的云函数,功能是将传入的两个参数 a 和 b 相加:

// index.js 是入口文件,云函数被调用时会执行该文件导出的 main 方法
// event 包含了调用端(小程序端)调用该函数时传过来的参数,同时还包含了可以通过 getWXContext 方法获取的用户登录态 `openId` 和小程序 `appId` 信息
const cloud = require('wx-server-sdk')
exports.main = async (event, context) => {
let { userInfo, a, b} = event
let { OPENID, APPID } = cloud.getWXContext() // 这里获取到的 openId 和 appId 是可信的
let sum = a + b

return {
 OPENID,
 APPID,
 sum
}
}

在开发者工具上传云函数后,在小程序中的调用方法:

wx.cloud.callFunction({
  // 需调用的云函数名
  name: 'add',
  // 传给云函数的参数
  data: {
    a: 12,
    b: 19,
  },
  // 成功回调
  complete: console.log
})
// 当然 promise 方式也是支持的
wx.cloud.callFunction({
  name: 'add',
  data: {
    a: 12,
    b: 19
  }
}).then(console.log)

开发指引

云开发控制台

云开发提供了一个控制台用于可视化管理云资源。控制台包含以下几大模块。

  • 概览:查看云资源的总体使用情况
  • 用户管理:查看小程序的用户访问记录
  • 数据库:管理数据库集合、记录、权限设置、索引设置
  • 存储管理:管理云文件、权限设置
  • 云函数:管理云函数、查看调用日志、监控记录
  • 统计分析:查看云资源详细使用统计

若小程序由多名开发者共同维护,小程序管理员可以在控制台权限设置中配置相应开发者权限。

在用户管理中会显示使用云能力的小程序的访问用户列表,默认以访问时间倒序排列,访问时间的触发点是在小程序端调用 wx.cloud.init 方法,且其中的 traceUser 参数传值为 true。例:

wx.cloud.init({
  env: 'test-123',
  traceUser: true,
})

云能力初始化

标签:调用,函数,微信,数据库,程序开发,程序,12.3,cloud,wx
From: https://www.cnblogs.com/imb514/p/17874006.html

相关文章

  • 12.3日记
    imread()读取图像cv.imread(filename[,flags])ImreadModes.Color:始终将图像转换为3通道BGR彩色图像,默认方式ImreadModes.Grayscale:始终将图像转换为单通道灰度图像ImreadModes.Unchanged:按原样返回加载的图像(使用Alpha通道)ImreadModes.AnyDepth:在输入具有相应深度时返回16位/3......
  • 12.3
    前几天考试了,没时间写。放假了,玩得很开心,又没睡。然后翘了大会,没什么魔怔事,但是没退役的学长们都来亨氏了......
  • 全面的.NET微信网页开发之JS-SDK使用步骤、配置信息和接口请求签名生成详解
    JSSDK使用步骤步骤一:绑定安全域名:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。步骤二:引入JS文件:在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js如需进一步提升服务稳定性,当上述资源不......
  • 2023.12.3——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.jfinal明日计划:学习......
  • 知识付费系统小程序开发中的最新趋势和技术是什么?
    在迅速发展的移动应用市场中,知识付费系统小程序成为了在线学习和知识传递的重要形式。随着技术的不断进步,了解最新的趋势和技术对于开发知识付费系统小程序至关重要。本文将讨论当前在这一领域中备受关注的最新趋势和技术。1.跨平台开发框架的崛起使用诸如ReactNative、Flutter和......
  • 跑腿小程序开发解析:技术架构、接口设计和前沿趋势
    随着生活节奏的加快和个人需求的增加,跑腿小程序成为了人们生活中不可或缺的一部分。从技术角度来看,一个高效、安全、以及用户友好的跑腿小程序是由多个关键要素构成的,包括技术架构、接口设计和前沿趋势。技术架构1.前端技术选型选择合适的前端框架如ReactNative、Flutter、Vue.j......
  • 如何开发互联网医院系统源码?互联网医院小程序开发全流程解析
    互联网医院系统源码的开发以及互联网医院小程序的设计是关键环节,本文将为您详细解析开发全流程。 一、需求分析与规划第一步,明确系统的功能模块。同时,规划系统的整体架构、技术栈,在这里需要想到系统的可扩展性和性能。二、数据库设计与建模建立互联网医院系统数据库是整个开发流程......
  • 有什么可以自动保存微信收到的图片和视频的方法么
    8-1在一些有外勤工作的公司里,经常会需要在外面工作的同事把工作情况的图片发到指定微信或者指定的微信群里,以记录工作进展等,或者打卡等,对于外勤人员来说,也就发个图片的事,但是对于在公司里收图片的人来说,可能是个麻烦的活。因为有可能每天要保存上千张图片,或者视频,要是都靠人工保存......
  • 手机通讯录好备份,那微信通讯录怎么备份出来
    6-8众所周知的是,手机通讯录是很好备份的,但是微信不行,手机本身就带有备份功能,换手机可以快速地迁移通讯录,比如下面这个就是小米手机自带的备份功能,简单好用但是现在生意可都在微信上做了,微信又有封号、交接工作的可能,微信上的通讯录怎么导出来,就是个大问题,因为微信本身就不提供这种......
  • 小程序开发实战案例之如何获取用户信息(一)
    ✌️简单唠两句经过小程序0-1开发系列内容的学习,相信大家对于如何开发小程序已经有了一些初步了解。今天新开设小程序开发实战专栏,希望能帮助大家在不同小程序开发场景中更丝滑的完成开发~ 支付宝小程序开发0-1系列专栏内容详见:最新demo版|如何0-1开发支付宝小程序之前......