微信小程序云开发学习指南(一)

1、云开发
开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。

云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

2、云开发的准备工作

  • 新建云开发项目
    微信小程序云开发学习指南(一)_第1张图片
    新建项目选择一个空目录,填入 AppID,选择 后端服务 “小程序-云开发”,点击创建即可。
    云开发小程序与普通 小程序的不同点:
    (1)不可以使用 测试号,必须填写AppID;
    (2)project.config.json 中增加了字段 cloudfunctionRoot 用于指定存放云函数的目录
    (3)cloudfunctionRoot 指定的目录有特殊的图标
    (4)云开发能力从基础库 2.2.3 开始支持

  • 开通云开发,并创建环境
    新建项目后,点击开发者工具【云开发】,进入云开发控制台,如下图,我们在进行云开发之前,需要先创建一个云开发环境。微信小程序云开发学习指南(一)_第2张图片

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

  • 查看控制台
    (1)运营分析:查看云开发监控、配额使用量、用户访问情况
    (2)数据库:可以查看、增加、更新、查找、删除数据、管理索引、管理数据库访问权限等
    (3)存储管理:查看和管理存储空间
    (4)云函数:查看云函数列表、配置、日志

云函开发控制台,如图微信小程序云开发学习指南(一)_第3张图片
云函数列表,如图:
微信小程序云开发学习指南(一)_第4张图片

  • 销毁云开发环境

3、云开发提供的支持

支持 作用 说明
云函数 无需自建服务器 在云端运行的 代码,微信私有协议天然鉴权,开发者只需编写自己的业务逻辑即可
数据库 无须自建数据库 可以在小程序前端操作,也能在云函数中读写的 JSON 数据库
存储 无需自建存储 在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理
云调用 原生微信服务集成 基于云函数免鉴权使用小程序开放接口的能力,包括服务端调用、获取开放数据等能力

3-1 云函数
云端运行环境为 Node.js,开发时请安装 Node.jsnpm
使用云开发需在云函数目录中安装 wx-server-sdk
安装命令npm install --save wx-server-sdk

project.config.json配置文件中,
小程序项目主目录:miniporgram/
云函数所在目录:cloudfunctions/
微信小程序云开发学习指南(一)_第5张图片
使用云开发的项目结构
微信小程序云开发学习指南(一)_第6张图片
部署云函数
微信小程序云开发学习指南(一)_第7张图片

<!--pages/myCloud/index.wxml-->
<view>
  <button type="primary" bindtap="addData">添加数据</button>
  <button type="primary" bindtap="deleteData">删除数据</button>
  <button type="primary" bindtap="updateData">更新数据</button>
  <button type="primary" bindtap="getData">查询数据</button>
  <button type="primary" bindtap="changeData">获取云端数据</button>
</view>

点击相应的按钮,对数据库数据执行对应的操作,如图:
微信小程序云开发学习指南(一)_第8张图片

云函数入口文件 dataOpera.js
如果入口文件有修改,需要手动设置更新,选中该入口文件,右击【云函数增量上传:更新文件】

const cloud = require('wx-server-sdk');
cloud.init(); //初始化必须在引入模块之后

const db = cloud.database();
const _ = db.command;

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    return await db.collection("clouddata").where({
      // 年龄大于18的
      age:_.gt(18)
    })
    .update({
      data:{
        // 如果年龄大于18,就给该条数据添加字段info,并赋值"成年了"
        info:"成年了"
      }
    })
  } catch (error) {
    console.log(error);
  }
}

云函数目录下配置文件
微信小程序云开发学习指南(一)_第9张图片

3-2 数据库
云开发提供了一个 JSON 数据库,数据库中的每条记录都是一个 JSON 格式的对象。
一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,
数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
如图所示:
微信小程序云开发学习指南(一)_第10张图片
(1)添加数据到数据库中

  // 添加数据到集合中
  addData(){
    db.collection("clouddata").add({
      data:{
        // name:"托尼",
        // age:23,
        // sex:"男",
        // height:"180cm"
         name:"John",
        age:26,
        sex:"男",
        height:"182cm"
      }
    }).then(res=>{
      console.log(res);
    });
  },

添加数据到数据中
数据库中添加了一条新的记录如下图:
微信小程序云开发学习指南(一)_第11张图片

(2)删除数据库中数据

  // 删除数据
  deleteData(){
    db.collection("clouddata").doc("ee99daee5ee717f30016d74934ac0c17").remove({
      data:{
        name:"汤姆"
      }
    }).then(res=>{
      console.log(res);
    })
  }

控制台显示已成功删除一条记录
删除数据库中数据

(3)更新数据库中的数据

  // 更新数据
  updateData(){
    // .doc("")中的字符串是每条数据的id
    // 将id为e984b69a5ee71c67001a50be49d54d19的数据中age的值修改为18
      db.collection("clouddata").doc("e984b69a5ee71c67001a50be49d54d19").update({
      data:{
        age:18
      },
      success:res=>{
        console.log(res);
      }
    });
  },

更新数据库数据记录
更新之前的数据
微信小程序云开发学习指南(一)_第12张图片
更新之后的数据
微信小程序云开发学习指南(一)_第13张图片
(4)查询数据

// 查询数据
  getData(){
    // 获取单条数据记录 
    db.collection("clouddata").doc("ab79f8175ee745730016feb77d917ede").get({
      success:res=>{
        console.log("单条记录",res);
      }
    }) 

    // 获取多条数据记录
    db.collection("clouddata").where({
      _openid:"oUONt5fLycxm4CytuY1TEKWTTSyE"
    }).get({
      success:res=>{
        console.log("多条记录",res);
      }
    })

    // 获取数据库中年龄大于20的记录
    db.collection("clouddata").where({
      // 注意:数据库中字段的数据类型,在对数据库进行修改/更新操作时,
      // 先看一下确认数据库中字段的数据类型,避免不必要的错误。比如age是number类型,这里要注意
      age:_.gt(20)
    }).get({
      success:res=>{
         console.log(res);
      }
   })
 },

获取单条记录
获取数据库中单条记录获取多条记录
微信小程序云开发学习指南(一)_第14张图片

你可能感兴趣的:(微信小程序)