首先,我将通过四个part来讲述我的主题:
demo下载,搭配demo,看博客,效果更佳
内可能有通过demo演示,如果没有下载,请忽略
快速上手微信小程序-云开发
1.啥是Serverless
Serverless ,按中文翻译,称为「无服务器」
。
这究竟是一种什么样的形态或产品呢?无服务器,就是真的没有服务器吗?
网上查阅了资料,发现了,目前对于 Serverless 有几种解读方法:
1. Serverless 架构:
这种架构它依托于云厂商或云平台提供产品来实现系统的组织和构建。在这种架构中,用户不需要关注支撑应用服务运行的主机,而是可以更多的将关注点投入在系统架构,业务开发,业务支撑运维上。
2. Serverless 产品:
它说的是无需理解、管理服务器,按需使用,按使用付费的产品。Serverless 产品中,其实也可以包含存储、计算等多种类型的产品。而典型的计算产品,就是云函数这种形态。
2.啥是微信小程序-云开发
官网介绍:
-
小程序-云开发是微信团队联合腾讯云推出的专业的小程序开发服务
-
开发者可以使用云开发快速开发小程序、小游戏、公众号网页等,并且原生打通微信开放能力。
-
开发者无需搭建服务器,可免鉴权直接使用平台提供的 API 进行业务开发。
很明显,小程序-云开发就是一个使用了serverless架构的serverless产品。云开发,不需要我们去关注服务器,不需要我们去写接口。因为它提供给我们的云函数,HTTP API,云数据库,云存储,让我们可以直接操作数据,存储东西,并且提供了十分齐全的HTTP API供我们直接调用,以及功能强大的云调用,简直不要太快乐,并且因为是小程序自己提供的东西,人家不需要进行鉴权。
3.小程序-云开发的优势
0.传统开发和云开发的模式的区别
1.开发高效
因为不需要搭服务器,开发者仅仅需要编写核心逻辑代码,而且云开发内建小程序用户鉴权,不需要关注后端配置与部署,专注于业务开发
2.节约成本
按需收费,不用不要钱,而且提供了一定量的免费额度
3.官方生态
微信自己提供的东西,所以原生集成微信SDK,云相关API开箱即用;同时,通过云调用,可免鉴权直接调用微信开放接口
4.稳定可靠
底层资源由腾讯云亲情打造,提供专业支持,满足不同业务场景和需求,具备快速拓展能力,确保服务稳定,数据安全
4.简单介绍一个小程序-云开发项目
1.新建项目
向往常一样创建项目,后端服务 选择云开发模式即可
2.初始项目
项目创建成功后,初始项目就长这个样子
3.创建云环境
要想使用云开发,最重要的就是要创建云环境,点击云开发,在设置内新建即可
一般选择按需花钱模式就ok
小程序提供给开发者两个免费环境,多余的就需要氪金了
4.云数据库
小程序提供的一个非关系型数据库,类似MongoDB,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据库中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
对比
和传统数据库对比,还是十分容易理解的!
数据类型:
数据库提供了八种数据类型:
-
String:字符串
-
Number:数字
-
Object:对象
-
Array:数组
-
Bool:布尔值
-
Date:时间
-
Geo:多种地理位置类型
-
Null
注意:
-
在小程序端创建的时间是客户端时间,不是服务端时间,所以说,他可能会出现小程序端的时间与服务端时间不一定吻合
-
null 相当于一个占位符,表示一个字段存在但是值为空。
一些简单api:
首先,在使用api之前,我们需要初始化一下:
wx.cloud.init({ env: ‘ahf-oz31v', traceUser: true, })
我们只需要在全局文件
中,如demo中,app.js
初始化一下,来定义使用哪个环境,如果不写,默认使用第一个创建的环境,其中,traceUser属性,用来管理是否在云环境的用户访问中显示当前操作用户信息
微信提供了两种不同风格的api:
1.回调风格
2.Promise风格*
接下来的api有体现
增
db.collection('').add().then()
自我感觉和linq和lamuda挺一样的,而且也挺符合sql语言的
insert into ’table名‘ (’ 具体参数‘);
如demo
中的user.js
,用户登录功能,使用.add()
添加想要上传的信息,使用Promise风格,.then()
查
db.collection().doc().get
select * from table名 where ...
demo中的user.js
中,查询一条
查询多条,demo中的user.js
对于条件判断,
微信有一点点的改进,它提供了一个command
方法,开发者可以直接用来进行条件判断:
改
db.collection().doc().update()
update table名 set column = value where ...
在demo中,head.js
中,修改头像
删
5.云存储
小程序提供的一块可以存储东西的空间,提供了上传文件到云端、带权限管理的云端下载能力,开发者可以在小程序端和云函数端通过 API 使用云存储功能。
和云数据库一样,小程序提供的云存储的api函数名字,和云数据一样,十分的言简意赅,看了就懂,十分舒服
API走起:
上传文件
注意一点:小程序云存储不是以往的返回url,而是一个fileId
下载文件
删除文件
可以查看demo中的head.js
,上传头像功能,逻辑简单明了,先上传图片到云存储,然后得到回调信息,再插入到云数据库,一个上传功能就实现了,是不是很简单呢
6.云函数
云函数是一段运行在云端的代码,不需要管服务器怎么搞,你只需要在开发工具内写你想要的功能、然后一键上传部署即可运行后端代码。
小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。
如:
本地云函数开发在
后面是你环境的名字
云函数部署:
找到你写的函数,然后右键一键部署,
然后打开你的云环境即可查看到自己的云函数,并且支持本地测试和云端测试
举个栗子🌰 :
查看demo中,cloundfunctions
文件夹下的两个函数,一个实现登录功能,一个是update功能
在云函数中调用其他 API 前,同小程序端一样,也需要执行一次初始化方法:
以上方法二选一即可
以云函数调用数据库为例
假设在数据库中已有一个 ahf 集合(表),我们可以如下方式取得 ahf 集合的数据:
7.云调用
前提:版本要求:wx-server-sdk >= 0.4.0、开发者工具 >= 1.02.1904090
云调用是云开发提供的基于云函数使用小程序开放接口的能力
其实就是自己调用自己部署的云函数,以及调用微信小程序提供的一些接口
在demo中的detail.js
中使用自己部署的update
方法,来添加好友
8.HTTP API
HTTP API 提供了小程序外访问云开发资源的能力,使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发的互通。
官方文档,给我们提供了api文档,供我们查阅使用
demo中已有例子,打开cms
文件夹,routes
下的index.js
,简单是用koa2,使用http api,实现实时上传小程序的轮播图
逻辑如下:首先获取小程序的access_token值,
然后上传轮播图图片
接着将获取到的fileid插入到云数据库
最后获取到图片信息
用wx:for渲染
简单功能就实现了
感谢查看!!如有错误,欢迎指正!!!
博客在查阅官网云开发,以及
你必须要掌握的微信小程序云开发
看懂 Serverless,这一篇就够了.
千锋教育微信小程序-云开发课堂
以及自己的一些理解下诞生!!!