歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~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 送你一份技術課程大禮包!
海量技術實踐經驗,盡在雲加社區!