近期,微信小程序开放了新的能力——小程序·云开发,帮助开发者快速构建微信小程序的后端服务。
小程序云开发是什么
简单的来说,小程序云开发是一款Serverless服务,他为开发者提供了「云函数」、「云数据库」和「云文件存储」,并且将这些能力封装成特定的接口,以wx.cloud.xxx来进行调用。
小程序云开发不是什么
首先,小程序云开发不是PaaS,它和我们所熟悉的BAE、GoogleAppEngine不同,所提供的云函数并不是完整的环境,而是以一个特定的事件为单位的。严格来说,它所提供的云函数功能其实是FaaS(FunctionasaService),同类型的产品有LeanCloud的云函数、Bmob的云函数、AWS的Lambda、Azure的Functions和GoogleCloudFunctions。
其次,小程序云开发不是LeanCloud、Bmob之类的BaaS。不同于上述的两款产品,他们提供了丰富的API接口,能够实现各种各样的功能,小程序·云开发将接口进行深度的封装,仅能在小程序、云函数中通过wx.cloud和wx-server-sdk来调用(截止2018年8月24日)。因此,小程序云开发仅能应用在小程序中,无法在其他产品中应用(比如App)。
小程序云开发适合什么样的场景?
所有的业务逻辑都仅仅需要在小程序端完成,无需过于复杂的管理逻辑(这是因为云函数、云数据库无法在小程序以外的区域调用,因此无法实现强大的Web管理界面)。
小程序云开发的优势
1.微信登录逻辑简单
小程序云开发可以自动实现用户登录的校验,开发者无需再次校验用户身份,直接通过云函数的event.userInfo.openId即可获取到用户信息。直接调用数据库、文件存储API时,也会自动关联到用户对应的openId。
如果用户授权小程序获取昵称等信息,这些信息也会自动出现在小程序云开发的管理控制台中的用户登录部分。不需要开发者手动上传。
2.免费
目前小程序云开发提供了免费1GB的数据库存储和免费5GB的文件存储,这个存储量并不是很大,但是对于一些个人开发者来说,还是绰绰有余的,开发者可以使用这些容量来快速开发自己的小程序。
3.简单
小程序云开发的调用非常的简单,你只需要了解JavaScript和一些简单的异步的知识(promise),就可以完成小程序云开发的内容。
4.无侵入
小程序云开发本身是在小程序的基础库层面的封装,你无需再引入其他库就可以使用。
同样的,你也可以在原有的应用程序中,将一部分功能迁移到小程序云开发中。
小程序开发过程中遇到的一些坑
1.异步请求需要通过Promise来处理
在云函数中,我们大多会实现一些在小程序中无法实现,或受域名限制的请求接口,这时我们不能使用传统的Callback方法来进行请求,因为传统的callback方法执行完成后,云函数早已将数据返回给客户端,我们需要使用Promise来处理。
2.权限结构比较简单
小程序云开发提供的数据库权限非常简单,仅有四种。
仅创建者可写,所有人可读:数据只有创建者可写、所有人可读;比如文章。
仅创建者可读写:数据只有创建者可读写,其他用户不可读写;比如用私密相册。
仅管理端可写,所有人可读:该数据只有管理端可写,所有人可读;如商品信息。
仅管理端可读写:该数据只有管理端可读写;如后台用的不暴露的数据。
对于绝大多数情况下,简单的使用这四种权限根本无法满足我们的要求,因此,我们还需要在代码层面进行一些判断来确保具体的表现如我们所想的那样。
[来源于转载,作者花花姑娘z][原标题:微信小程序开放小程序开发功能:小程序·云开发]
推荐阅读:
------------
【有客多】是花儿绽放上市品牌旗下的微信小程序开发工具,制作过程无需代码,可视化拖拽即可,提供海量行业小程序模板,一键生成微信小程序,诚招微信小程序代理。