微信小程序学习笔记(五) 云开发

本文介绍了微信小程序的云开发服务,包括云开发的核心技术——云数据库、云存储和云函数。通过创建项目、开通服务、操作数据库和存储,以及使用云函数进行计算和调用,展示了云开发如何简化小程序的后端开发流程。
摘要由CSDN通过智能技术生成

1. 云开发简介

1.1 什么是云开发

  • 微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务。
  • 开发者可以使用云开发快速开发小程序、小游戏、公众号网页等,并且原生打通微信开放能力。
  • 开发者无需搭建服务器,可免鉴权直接使用平台提供的 API 进行业务开发。

1.2 云开发模式和传统模式对比

在这里插入图片描述

传统开发需要考虑

  • 成本角度:维护服务器成本,并且需要考虑并发量大之后的服务器的扩展;
  • 技术研发:对于单纯会前端的人来说,学习后端相关技术成本较高

2. 云开发的核心技术

1、云数据库

  • 提供在小程序端直接对数据库进行增删改查的能力
  • 数据库是类似于MongoDB的文档存储的数据库,操作非常方便

2、云存储

  • 可以在小程序端直接上传,下载,删除文件;
  • 自带CDN,提高文件访问速度
  • 可以获取临时连接,支持在小程序外访问

3、云函数

  • 提供了在服务器代码的执行能力;
  • 包含微信天然的私有鉴权;
  • 更大权限的操作数据库等;
  • 进行云调用、HTTP请求等操作;

3. 云开发初体验

3.1 创建项目

新建小程序项目,填入 AppID 并 勾选微信云开发,点击确认即可
在这里插入图片描述

如图,创建了具有云开发基础能力的小程序;其中 cloudfunctions 目录下放云函数代码,miniprogram 目录下放小程序代码

在这里插入图片描述

3.2 开通云开发(环境)服务(需购买)

点击开发者工具中的云开发,开通即可
在这里插入图片描述

3.3 了解环境和配额

1、什么是环境

  • 你开通一个云开发服务,即为创建了一个云开发环境,默认可拥有最多两个环境
  • 每个环境是相互独立的,拥有唯一的环境 ID,一个环境对应一整套独立的云开发资源,包含独立的数据库实例、存储空间、云函数等资源;
  • 实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先再测试环境测试完毕后再上到正式环境

2、什么是配额

  • 开通云开发后默认有一定的免费配额
  • 后期可以根据自己的业务量选择更高的配额
  • 配额说明

3.4 云开发项目初始化

小程序端开始使用云能力前,需要调用 wx.cloud.init 方法完成云能力的初始化

字段 数据类型 必填 默认值 说明
env string | object 默认选中环境 后续 API 调用的默认环境配置,传入字符串形式的环境 ID 可以指定所有服务的默认环境
traceUser boolean false 是否在将用户访问记录到用户管理中,在控制台中可见

步骤一:在 miniprogram -> app.js 中 进行云能力的初始化

// app.js
App({
   
  onLaunch: function () {
   
    wx.cloud.init({
   
      // env 参数说明:
      //   env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
      //   此处请填入环境 ID, 环境 ID 可打开云控制台查看
      //   如不填则使用默认环境(第一个创建的环境)
      env: 'my-env-id',
      traceUser: true,
    });
  }
});

步骤二:你可以在 project.config.json (在根目录) 文件中,指定自定义目录作为云开发的本地根目录,和小程序端目录,一般用默认

示例:

{
   
  "miniprogramRoot": "miniprogram/",
  "cloudfunctionRoot": "cloudfunctions/",
}

4. 云数据库

4.1 云数据库介绍

  • 云开发提供了一个文档型数据库,类似于Mongodb,里面存放的是一条条 JSON 格式的对象;
  • 一个数据库可以包含多个集合,一个集合中包含多个JSON对象
  • 提供了小程序端和服务器端(云函数)中调用的区分(如:在云函数中能更大/多权限的调用云数据库);

关系型数据库和 文档型数据库的概念对应关系如下表:

关系型 文档型
数据库 database 数据库 database
表 table 集合 collection
行 row 记录 record / doc
列 column 字段 field

能在云开发控制台中,可视化的操作(增删改查)数据库

在这里插入图片描述

4.2 对数据库的操作

4.2.1 添加数据

添加数据的调用过程

  1. 获取数据库对象
  2. 获取操作的集合
  3. 添加数据

【示例:在小程序端某页面上点击某按钮往集合中添加数据】

Page({
   
  // 点击按钮的事件监听
  onInsertDataTap() {
   
    // 1. 获取数据库
    const db = wx.cloud.database();
    // 2. 通过数据库获取 users集合; 注:users 是已创建的集合的名称
    const collection = db.collection('users');
    // 2. 在该集合中添加数据 ,调用add方法 
    collection.add({
   
      // data 字段表示需新增的 JSON 数据
      data: {
   
        name: 'jack',
        age: 16,
        bobbies: ['篮球', '足球'],
        address: {
   
          "city": "北京",
          "postcode": 111111
        }
      },
      // 添加成功的回调
      success: function (res) {
   
        // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
        console.log(res)
      }
    })
  }
});

获取操作后的回调结果可选用风格有:

  • 基于回调:传入 success、fail、complete,即为回调风格
  • 基于Promise:使用then、catch、finally(使用Promise风格,就不能传入success, fail 或 complete)

4.2.2 修改数据

修改数据有两种方式

  • updata:局部更新一个或多个记录,局部更新只有指定的字段会更新,其他字段不变
  • set : 使用新对象替换一个记录
Page({
   
  onUpdateDataTap() {
   
    const db = wx.cloud.database();
    const collection = db.collection('users');
    // 1. update方法;更改局部字段
    // doc方法用于根据传入 _id 字段的值 (这个字段是记录的唯一标识) 查询到某条记录
    collection.doc('b17ee42c6382cd5101206fd657058e8f').update({
   
    // data 传入需要局部更新的数据
     data:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值