微信小程序 - Unit05
1.云开发
1.1 概述
开发者可以使用云开发来开发微信小程序、小游戏,而无需搭建服务器。
云开发提供的能力:
· 云存储,类似网盘,在小程序客户端可以实现文件上传/下载的能力。
· 云数据库,是一个JSON
类型的数据,实现数据的增、删、改、查等操作。
· 云函数,在云端运行的代码。
1.2 开通云开发
单击开发者工具栏上的"云开发"按钮
1.3 创建云开发小程序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Riip2avk-1621412958655)(assets/image-20201124094236951.png)]
在创建云开发的小程序项目后,
miniprogram
才是当前项目的根目录。
2.云存储
云存储的管理可以通过图形化界面或API
来实现。
2.1 云开发控制台管理界面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aip3DqOh-1621412958657)(assets/image-20201124100227170.png)]
2.2 API
· wx.cloud.init()
wx.cloud.init()
方法用于实现云环境的初始化,其语法结构是:
wx.cloud.init({
env:"云环境ID",
traceUser:是否跟踪用户
})
· wx.chooseImage()
wx.chooseImage()
方法用于从本地相册选择图片或使用相机拍照,其语法结构是:
wx.chooseImage({
count:最多可选择的图片数量(9),
//album,相册;camera,相机
sourceType:图片来源["album","camera"],
success:res=>{
//res.tempFilePaths,为字符串数组,用于存储临时文件的路径
//res.tempFiles,为对象数组,用于存储临时文件的信息
//每个临时文件包括path及size属性
}
})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0cx6mOjV-1621412958659)(assets/image-20201124112220258.png)]
· wx.previewImage()
wx.previewImage()
方法用于全屏预览图片,其语法结构是:
wx.previewImage({
urls:"需要预览的图表列表(字符串数组类型)",
current:"当前显示的图片的地址(字符串类型)",
success:res=>{
//...
}
})
· wx.uploadFile()
wx.uploadFile()
方法用于将本地文件上传到HTTPS
服务器,其语法结构是:
wx.uploadFile({
filePath:"本地文件路径",
url:"服务器URL地址",
name:"文件名称key",
success:res=>{
//...
}
})
· wx.cloud.uploadFile()
wx.cloud.uploadFile()
方法用于将本地文件上传到云存储空间,其语法结构是:
wx.cloud.uploadFile({
filePath:"本地文件路径",
cloudPath:"云存储路径",
config:{
env:"云环境ID"
},
success:res=>{
//res.fileID返回文件上传成功后的fileID
//该fileID可以被使用于<image>的src属性中
}
})
3.云数据库
3.1 概述
云数据库是一个既可以在小程序客户端,也可以在云函数中读写的JSON
类型的数据库。
小程序提供的云数据库是基于MongoDB
的非关系型数据库。
3.2 关系型数据库与非关系型数据库的区别
关系型数据库 | 非关系型数据库 | |
---|---|---|
核心概念 | 数据库、数据表、列(字段)、行(记录) | 数据库、集合、字段、记录(文档) |
数据类型 | 字符型、整型、浮点型、布尔型 | 字符型、数值型、布尔型、数组、对象 |
操作命令 | SQL | 不尽相同 |
关系的维护 | 外键 | - |
典型的代表 | MySQL 、MS SQL Server 等 | MongoDB 、Redis |
3.3 创建集合
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4z6atHPL-1621412958661)(assets/image-20201124163044458.png)]
3.4 API
· wx.cloud.database()
wx.cloud.database()
方法用于获取数据库对象实例,其语法结构是:
wx.cloud.database({
env:"云环境ID"
})
wx.cloud.database()
方法可以想像成USE 数据库名称
· collection()
collection()
用于获取集合对象实例,其语法结构是:
Database.collection(string name)
· add()
add()
方法用于添加文档(记录),其语法结构是:
Collection.add({
data:{
//要插入的数据,数据类型包括:string、number、boolean、array、object等
},
success:res=>{
//res._id将返回新插入记录的_id号
}
})
_id
为系统自动生成的唯一的ID
_openid
指当前文档(记录)所有者的OpenID
课外作业:
1.手动创建两个集合 – category
、books
,分别用来存储图书的分类及图书信息
success:res=>{
//res._id将返回新插入记录的_id号
}
})
> `_id`为系统自动生成的唯一的`ID`
>
> `_openid`指当前文档(记录)所有者的`OpenID`
课外作业:
1.手动创建两个集合 -- `category`、`books`,分别用来存储图书的分类及图书信息
2.将上传图片的`fileID`写入到`test`集合