欢迎你们前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~html
近期,小程序开放了新的能力——「小程序·云开发」,帮助开发者快速构建微信小程序的后端服务。我做为一名微信小程序的开发者,也在第一时间尝试了小程序云开发,并将我本身在开发过程当中的经验分享给你们。github
简单的来讲,小程序云开发是一款 Serverless 服务,他为开发者提供了「云函数」、「云数据库」和「云文件存储」,而且将这些能力封装成特定的接口,以 wx.cloud.xxx
来进行调用。数据库
首先,小程序云开发不是 PaaS ,它和咱们所熟悉的 BAE、Google App Engine 不一样,所提供的云函数并非完整的环境,而是以一个特定的事件为单位的。严格来讲,它所提供的云函数功能实际上是 FaaS (Function as a Service),同类型的产品有 LeanCloud 的云函数、 Bmob 的云函数、AWS 的 Lambda、 Azure 的 Functions 和 Google Cloud Functions。小程序
其次,小程序云开发不是 LeanCloud 、 Bmob 之类的 BaaS 。不一样于上述的两款产品,他们提供了丰富的 API 接口,可以实现各类各样的功能,小程序·云开发将接口进行深度的封装,仅能在小程序、云函数中经过 wx.cloud 和 wx-server-sdk 来调用(截止2018年8月24日)。所以,小程序云开发 仅能应用在小程序中,没法在其余产品中应用(好比 App )后端
全部的业务逻辑都仅仅须要在小程序端完成,无需过于复杂的管理逻辑(这是由于云函数、云数据库没法在小程序之外的区域调用,所以没法实现强大的 Web 管理界面)微信小程序
小程序云开发能够自动实现用户登陆的校验,开发者无需再次校验用户身份,直接经过云函数的 event.userInfo.openId
便可获取到用户信息。直接调用数据库 、文件存储 API 时,也会自动关联到用户对应的 openIdapi
若是用户受权小程序获取昵称等信息,这些信息也会自动出如今小程序云开发的管理控制台中的用户登陆部分。不须要开发者手动上传。promise
目前小程序云开发提供了免费 1GB 的数据库存储和 免费 5 GB 的文件存储,这个存储量并非很大,可是对于一些我的开发者来讲,仍是绰绰有余的,开发者可使用这些容量来快速开发本身的小程序。bash
小程序云开发的调用很是的简单,你只须要了解 JavaScript 和一些简单的异步的知识 (promise),就能够完成小程序云开发的内容。
小程序云开发自己是在小程序的基础库层面的封装,你无需再引入其余库就可使用。
一样的,你也能够在原有的应用程序中,将一部分功能迁移到小程序云开发中。
在云函数中,咱们大多会实现一些在小程序中没法实现,或受域名限制的请求接口,这时咱们不能使用传统的 Callback 方法来进行请求,由于传统的 callback 方法执行完成后,云函数早已将数据返回给客户端,咱们须要使用 Promise 来处理。
好比,下面的代码是我请求豆瓣 API 的代码。
var rp = require('request-promise')
exports.main = (event, context) => {
var res = rp('https://api.douban.com/v2/book/isbn/'+ event.isbn).then( html => {
return html;
}).catch( err => {
console.log(err);
})
return res
}
复制代码
上述代码出自 Github 项目 WXCloud-bookcase
小程序云开发提供的数据库权限很是简单,仅有四种。
对于绝大多数状况下,简单的使用这四种权限根本没法知足咱们的要求,所以,咱们还须要在代码层面进行一些判断来确保具体的表现如咱们所想的那样。
好比,在作一个书柜的项目时,但愿书柜里的书能够设置可被第三方查看和不可被第三方查看,这时你只能将集合的数据设置为「仅建立者可写,全部人可读」,并经过代码来控制具体信息是否显示,好比加入一个 is_private 字段来进行控制。
问答
相关阅读
此文已由做者受权腾讯云+社区发布,更多原文请点击
搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!
海量技术实践经验,尽在云加社区!