【小程序】微信小程序云开发笔记详细教程(建议收藏)

news2024/11/24 13:55:54

1- 前言


1.1 微信云开发是什么?

微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务。

开发者可以使用云开发快速开发小程序、小游戏、公众号网页等,并且原生打通微信开放能力。

开发者无需搭建服务器,可免鉴权直接使用平台提供的 API 进行业务开发。

1.2 怎么快速学习?

法一:前往官网 ,了解更多信息

在这里插入图片描述

法二:也可以登录自己的微信小程序

在这里插入图片描述

2- 介绍

2.1 概念

  1. 无需搭建服务器,快速构建小程序、公众号;

  2. 无需搭建服务器,只需使用平台提供的各项能力,即可快速开发业务。

直白来讲,小程序云开发就是让前端程序员拥有后端的能力

2.2 能力概览

云开发包括以下(参考云开发文档):

  • 储存数据与文件

云数据库:文档型数据库;支持在小程序端和云函数中调用。

存储:云端文件存储,支持在前端直接上传/下载,可在云开发控制台可视化管理。

  • 运行后端代码

云函数:开发者只需编写自身业务逻辑代码

  • 扩展能力

静态网站:快速部署网站,支持自定义域名、网站防刷等配置。

内容管理(CMS): 一键部署,可视化管理文本、Markdown、图片等多种内容,使用云数据库读取数据并使用数据。

  • 打通微信生态

云调用:云函数内免鉴权调用小程序开放接口,包括服务端调用、获取开放数据等能力。

微信支付:免鉴权、免签名计算、免 access_token,在云函数内原生调用微信支付接口。

环境共享:跨账号资源和能力复用,可授权云开发资源给其他小程序/公众号使用。

2.3 流程

前端写好云函数 ==> 上传到云服务器 ==>定义自定义云部署 ===>

前端去调用云函数 ==> 间接通过云函数对数据库的操作

前端==>全栈

3- 搭建云开发模板

3.1 创建项目

打开并登录微信开发者工具,新建小程序项目,填入 AppID,后端服务选择“微信云开发”并勾选同意"云开发服务条款":

在这里插入图片描述

点击创建后,即可得到一个展示云开发基础能力的示例小程序:
在这里插入图片描述

3.2 开通云开发,创建环境

在使用云开发能力之前,需要先开通云开发。

在开发者工具的工具栏左侧,点击 “云开发” 按钮即可打开云控制台,根据提示开通云开发,并且创建一个新的云开发环境。

在这里插入图片描述
在这里插入图片描述
注意 :免费体验1个月,只限没有用过微信云开发的新用户

  • 每个环境相互隔离,拥有唯一的环境 ID,包含独立的数据库实例、存储空间、云函数配置等资源;
  • 初始创建的环境自动成为默认环境;

3.3 开始开发

开通创建环境后,即可以开始在模拟器上操作小程序体验云开发提供的部分基础能力演示。

4- 云开发能力

微信小程序云开发提供了数据库、云存储、云函数、云调用、HTTP API 等功能。

4.1 数据库

4.1.1 介绍

云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。

关系型数据库和 JSON 数据库的概念对应关系如下表:
在这里插入图片描述

4.1.2 创建
  • 创建集合

在这里插入图片描述

  • 添加记录

在这里插入图片描述

4.2 存储

云存储提供高可用、高稳定、强安全的云端存储服务,支持任意数量和形式的非结构化数据存储,如视频和图片,并在控制台进行可视化管理。

4.3 云函数

4.3.1 介绍

云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的 CPU 内存等计算资源;各云函数完全独立;可分别部署在不同的地区。开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在小程序端调用,同时云函数之间也可互相调用。

4.3.2 创建
  • 右键创建云函数

在这里插入图片描述

  • 在页面中调用云函数

在这里插入图片描述

4.3.3 操作

在云函数如何操作云数据

  1. 初始化
var db = cloud.database()
  1. 获取
var data = await db.collection("feedback").get()
  1. 添加
var  data = await db.collection("feedback").add(data:{添加数据}

4.4 HTTP API

云开发资源也可以通过 HTTP 接口访问,即在小程序外访问,接口见 HTTP API 文档。

5- 云上传

5.1 介绍

wx.cloud.uploadFile

将本地资源上传至云存储空间,如果上传至同一路径则是覆盖写;

在这里插入图片描述

5.2 使用示例

  • Callback 风格
wx.cloud.uploadFile({
  cloudPath: 'example.png',
  filePath: '', // 文件路径
  success: res => {
    // get resource ID
    console.log(res.fileID)
  },
  fail: err => {
    // handle error
  }
})
  • Promise 风格
wx.cloud.uploadFile({
  cloudPath: 'example.png',
  filePath: '', // 文件路径
}).then(res => {
  // get resource ID
  console.log(res.fileID)
}).catch(error => {
  // handle error
})

6- 排序

6.1 介绍

Collection.orderBy(fieldPath: string, string: order):Collection

支持端:小程序 , 云函数 , Web

指定查询排序条件

6.2 参数

fieldPath: string
string: order

6.3 返回值

Collection

6.2 参数说明

方法接受一个必填字符串参数 fieldName 用于定义需要排序的字段,一个字符串参数 order 定义排序顺序。order 只能取 asc 或 desc。

如果需要对嵌套字段排序,需要用 “点表示法” 连接嵌套字段,比如 style.color 表示字段 style 里的嵌套字段 color。

同时也支持按多个字段排序,多次调用 orderBy 即可,多字段排序时的顺序会按照 orderBy 调用顺序先后对多个字段排序

6.3 示例代码:按一个字段排序

按进度排升序取待办事项

db.collection('todos').orderBy('progress', 'asc')
  .get()
  .then(console.log)
  .catch(console.error)

6.3 示例代码:按多个字段排序

先按 progress 排降序(progress 越大越靠前)、再按 description 排升序(字母序越前越靠前)取待办事项:

db.collection('todos')
  .orderBy('progress', 'desc')
  .orderBy('description', 'asc')
  .get()
  .then(console.log)
  .catch(console.error)

7- 分页

7.1 介绍

Collection.skip(offset: number):Collection

支持端:小程序 , 云函数 , Web

指定查询返回结果时从指定序列后的结果开始返回,常用于分页

7.2 参数

offset: number

7.3 参数

Collection

7.4 示例代码

db.collection('todos').skip(10)
  .get()
  .then(console.log)
  .catch(console.error)

8- 查询

可在官方文档详细查看

在这里插入图片描述

9- 注意点

  1. 在app.js

在这里插入图片描述

  1. 云函数index.js 定义id

在这里插入图片描述

  1. 云id 来自云开发 ==> 概览 ==>环境id

在这里插入图片描述

  1. 选择环境

在这里插入图片描述

  1. 上传并部署

在这里插入图片描述

  1. 增量上传

在这里插入图片描述


往期传送门

【小程序】微信小程序自定义组件Component详细总结

【小程序】微信小程序常用api的使用,附案例(建议收藏)

【微信小程序】小程序使用详细教程(建议收藏)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud | 实现Eureka Server 高可用服务注册中心全套解决方案

目录1、在搭建Eureka Server,配置高可用服务注册中心,配置3个Eureka Server:2、因为是在本地实现的话,需要在localhost加入三个服务,需要改变etc/hosts,linux系统通过vim /etc/hosts,3、如果是在测试或者是…

最优孤岛划分下含分布式电源配电网可靠性评估附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

小学生python游戏编程arcade----坦克大战(1)

小学生python游戏编程arcade----坦克大战(1)前言坦克类,地图,角色的控制,声音等前期学习的汇总1、坦克类2、title地图加载2.1设置,tank类的引入2.2 角色的引入2.3 效果图2.4 代码实现总结源码获取前言 接上…

kafka学习之基本概念

一、kafka常用基本概念 producer:生产者,生产并发送消息的一方。 consumer:消费者,接收消费消息的一方。 topic:一类消息的集合。在kafka中,消息以主题为单位进行归类,producer负责将消息发送…

云服务器 宝塔部署SpringBoot前后端分离项目

🦆博主介绍:小黄鸭技术 🌈擅长领域:Java、实用工具、运维 👀 系列专栏:📢开发工具 Java之路 八股文之路 📧如果文章写作时有错误的地方,请各位大佬指正,一起进…

舆情监控究竟是什么?怎么运作的?

本文首发于:行者AI谛听 随着互联网的加速变化,舆论已成为影响国家政治、社会生活和公众情绪的重要因素,也是影响企业形象和长远发展的重要因素。能及时收集精准措施以及预防减少和消除舆论带来的影响,是行业长远发展的关键条件。下…

泰凌微蓝牙 HCI层事件的注册和使用

Controler HCI event是通过HCI将Controller所有的event报告给Host HCI event是按BLE Spec标准设计的,是BLE Controller和Host用来交互的事件;GAP event是BLE host定义的一些协议栈流程交互时间通知型事件。 HCI event类型 #define HCI_EVT_DISCONNEC…

【Hack The Box】windows练习-- Object

HTB 学习笔记 【Hack The Box】windows练习-- Object 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月17日🌴 &#x1…

链表oj题(第一弹)

通过前两篇博客我们了解了链表的实现,那么今天我们来看看链表的oj题是如何完成的。 1、移除链表元素 题目要求我们删掉与val相同的节点。 方法一:我们可以写一个循环,首先创建两个节点,一个头节点,一个尾节点&#x…

Jmeter常用函数__V和__intSum

文章目录一、__V详解1、作用2、示例二、__intSum详解1、作用2、示例三、示例--随机用户名四、示例--随机对应的用户名和密码一、__V详解 1、作用 执行变量表达式,并返回执行的结果可以执行嵌套函数 2、示例 1、固定值和随机数组合 ${__V(1.${__Random(1,10,)})}…

[附源码]java毕业设计民宿客栈管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[Python]Django 模型

🍉 前言 系列文章目录 [Python]目录 文章目录🍉 前言🍉 Django 模型🍉 定义模型🥝 语法🥝 常用模型字段类型🥑 AutoField🥑 BooleanField🥑 NullBooleanField&#x1f95…

【服务器搭建】教程二:快速搭建我们服务器 进来看

前言: 购买一台服务器,再来个域名,搭建一个自己的个人博客,把一些教程、源码、想要分享的好玩的放到博客上,供小伙伴学习玩耍使用。 我把这个过程记录下来,想要尝试的小伙伴,可以按照步骤&#…

Jmeter连接数据库_postgresql

文章目录一、下载驱动包(.jar)1. 下载对应的安装包2、放在Jmeter的lib目录下二、Jmeter中的操作1、测试计划2、JDBC Connection Configuration3、JDBC Request三、具体示例一、下载驱动包(.jar) 不同的数据区需要的驱动包不同&am…

Systemd Rsync 文件定时同步

1. 环境 操作系统:CentOS 7 主机: master 192.168.0.98backup 192.168.0.166 目标:每天凌晨3点从master 上/www增量的复制到backup上。 2. 配置主机的免密登录 在Backup上配置主机的免密登录,请参考 SSH 公钥免密登录[1] 3. Rsync 服…

一只程序猿很黄很暴力的日记

一些基础概念: Socket(s):主板上面的物理 CPU 插槽。 Core(s):一个 CPU 一般包含 2~4 个 core,即 Core(s) per socket。 Thread(s):一个 core 包含多个可以并行处理任务的 thread,即 Thread(s) per core…

MySQL8.0优化 - SQL执行流程

文章目录学习资料SQL执行流程MySQL执行流程图查询流程1.查询缓存2.解析器3.优化器4.执行器学习资料 【MySQL数据库教程天花板,mysql安装到mysql高级,强!硬!-哔哩哔哩】 【阿里巴巴Java开发手册】https://www.w3cschool.cn/aliba…

每天学习一个css之linear-gradient

linear-gradient的使用 介绍 CSS linear-gradient() 函数用于创建一个表示两种或多种颜色线性渐变的图片。其结果属于<gradient>数据类型&#xff0c;是一种特别的<image>数据类型 语法 linear-gradient([ <angle> | to <side-or-corner> ,]? <…

使用Kubernetes部署Kubernetes集群

Kubernetes集群环境搭建 文章目录Kubernetes集群环境搭建一、环境初始化1、查看操作系统的版本2、主机名解析3、时钟同步4、禁用swap分区5、开启IP转发&#xff0c;和修改内核信息---三个节点都需要配置6、配置IPVS功能&#xff08;三个节点都做&#xff09;二、安装docker1、切…

【学习笔记】kafka学习二

生产者-同步消息发送 如果生产者发送消息没有收到ack&#xff0c;会阻塞到3s时间&#xff0c;如果还没收到消息&#xff0c;会重试&#xff0c;重试3次 生产者-异步消息发送&#xff08;缺点&#xff1a;消息丢失情况&#xff0c;同步更优&#xff09; 生产者发送消息后可以直…