小程序·云开发 项目开发经验分享

欢迎你们前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~html

本文由白宦成 发表于云+社区专栏git

近期,小程序开放了新的能力——「小程序·云开发」,帮助开发者快速构建微信小程序的后端服务。我做为一名微信小程序的开发者,也在第一时间尝试了小程序云开发,并将我本身在开发过程当中的经验分享给你们。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 管理界面)微信小程序

小程序云开发的优点

1. 微信登陆逻辑简单

小程序云开发能够自动实现用户登陆的校验,开发者无需再次校验用户身份,直接经过云函数的 event.userInfo.openId 便可获取到用户信息。直接调用数据库 、文件存储 API 时,也会自动关联到用户对应的 openIdapi

img

若是用户受权小程序获取昵称等信息,这些信息也会自动出如今小程序云开发的管理控制台中的用户登陆部分。不须要开发者手动上传。promise

2. 免费

目前小程序云开发提供了免费 1GB 的数据库存储和 免费 5 GB 的文件存储,这个存储量并非很大,可是对于一些我的开发者来讲,仍是绰绰有余的,开发者可使用这些容量来快速开发本身的小程序。bash

img

3. 简单

小程序云开发的调用很是的简单,你只须要了解 JavaScript 和一些简单的异步的知识 (promise),就能够完成小程序云开发的内容。

4. 无侵入

小程序云开发自己是在小程序的基础库层面的封装,你无需再引入其余库就可使用。

一样的,你也能够在原有的应用程序中,将一部分功能迁移到小程序云开发中。

小程序开发过程当中遇到的一些坑

1. 异步请求须要经过 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

2. 权限结构比较简单

img

小程序云开发提供的数据库权限很是简单,仅有四种。

  • 仅建立者可写,全部人可读:数据只有建立者可写、全部人可读;好比文章。
  • 仅建立者可读写:数据只有建立者可读写,其余用户不可读写;好比用私密相册。
  • 仅管理端可写,全部人可读:该数据只有管理端可写,全部人可读;如商品信息。
  • 仅管理端可读写:该数据只有管理端可读写;如后台用的不暴露的数据。

对于绝大多数状况下,简单的使用这四种权限根本没法知足咱们的要求,所以,咱们还须要在代码层面进行一些判断来确保具体的表现如咱们所想的那样。

好比,在作一个书柜的项目时,但愿书柜里的书能够设置可被第三方查看和不可被第三方查看,这时你只能将集合的数据设置为「仅建立者可写,全部人可读」,并经过代码来控制具体信息是否显示,好比加入一个 is_private 字段来进行控制。

问答

怎样部署小程序?

相关阅读

教你1天搭建本身的“微视”

教你从0到1搭建小程序音视频

教你快速搭建一场发布会直播方案

【每日课程推荐】新加坡南洋理工大学博士,带你深度学习NLP技术

此文已由做者受权腾讯云+社区发布,更多原文请点击

搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

海量技术实践经验,尽在云加社区

相关文章
相关标签/搜索