微信小程式之:雲開發初體驗--致我的第一個小程式

風雨vs同舟發表於2018-10-18

背景:一直關注微信小程式的發展,看著小程式一步步完善,一步步壯大,心裡癢癢,也想做一個自己的微信小程式,但是苦於只會前端,不會服務端,所以想法一直被卡著。現在小程式有了雲開發,很輕鬆實現後端功能,寫後端跟寫前端沒啥區別,真的是前端小夥伴們的福音啊。

經過幾個晚上的熬夜奮戰,我的第一個微信小程式正式上線啦。

小程式名字:杭州地鐵通

二維碼:

qrcode.jpg

歡迎小夥伴們體驗,歡迎吐槽。

現在還只是初版,功能還不完善,後面會繼續更新的。 閒話少說,進入正題。

小程式雲開發是什麼?

開發者可以使用雲開發開發微信小程式、小遊戲,無需搭建伺服器,即可使用雲端能力。(雲端說白了也就是服務端啦,說的那麼高大上,對新手朋友可不太友好。)

小程式·雲開發提供了三個基礎能力:資料庫儲存雲函式

  • 資料庫:json資料庫,就理解為往裡面存的是json,取出來的也是json。
  • 儲存:就是把你的圖片、音訊和視訊之類的資原始檔,儲存到裡面,幫你生成連結,直接拿連結就可以用,就好像一個網盤一樣。
  • 雲函式:這個雲函式,就是服務端的介面,你呼叫這個函式,也就是呼叫介面。雲函式可以在客戶端寫,也可以在雲開發控制檯寫,寫完之後同步一下,兩端就都有了。在雲函式裡,你可以進行計算,也可以運算元據庫,把想要的結果以同步或者非同步的方式返回給客戶端。

每個使用者最多可擁有兩套開發環境,兩套環境是互相獨立的,一般是建立一個test環境用於開發,一個release環境用於釋出。這裡有小坑,後面說。

雲開發怎麼用?

在建立工程時,選擇快速建立雲開發模板,直接就擁有了雲開發能力, 模板裡已經配置好了雲服務對接模組的路徑,如下圖:

image.png

在app.js裡配置當前的環境ID,配置完畢,就可以進行開發了。

1.建立並編寫雲函式:

右鍵雲函式模組資料夾->新建Node.js雲函式: 

image.png

比如,我建立了一個獲取使用者收藏列表的雲函式,函式功能就是從資料庫從讀取使用者收藏列表,並把結果返回給小程式。

注意:app.js裡雖然指定了當前環境,但這裡的程式碼是在雲端執行的,還是要重新指定讀的是哪個環境的資料庫。

image.png

上面是非同步查詢,並返回,所以用的是 await。用await的好處是,可以把非同步程式碼像同步一樣去寫,這在阮一峰的ES6入門裡有講。

2.雲函式上傳並部署

建立完雲函式後,還需要右鍵點選雲函式,進行上傳並部署,

注意:微信開發工具不支援批量上傳,每個雲函式都要單獨點選上傳,這裡有點坑。

上傳部署完後,就可以直接呼叫了,雲函式呼叫和介面返回處理,其中,引數是放在data物件裡的。

image.png

3.獲取使用者唯一身份標識:openId

以前沒有云服務時,開發者用自己的伺服器對接小程式,使用微信使用者id時,需要自己呼叫介面進行鑑權,來判斷使用者身份。而現在這些都已經被雲服務給做了,每次呼叫介面,微信會自動鑑權,而且每個介面都會自帶openId,使用起來非常方便。

雲函式裡的微信openId的獲取,和引數的獲取: 

image.png

到此,這些就是雲函式的使用過程,是不是很簡單,又很方便。

最後:上面說過,雲服務有兩個環境,兩個環境互相獨立,目前微信不支援環境間資料同步,那在test裡的一些資料,就要手動去同步到release環境,這個有點煩。

還有一點是:如果開發完要上線了,那要把環境從test切到release環境。切換環境時,需要把app.js裡雲服務初始化環境切換到release,雲函式裡如果有資料庫呼叫,也要指定資料環境。而且切換時,用的是環境ID,不是環境的名字,文件裡寫的是用名字,坑了我20分鐘。

相關文章