先上我們最終使用雲開發開發的小程式,小程式碼如下:
小程式名字為家物館,主要用來管理家中物品。涉及到使用者賬号系統,物品管理,分類及搜尋等功能,使用了雲開發的雲函數,資料庫,存儲,CMS 内容管理等能力。
如果對雲開發不熟悉的話,可以先按照官方文檔,快速建立一個雲開發的小程式用于參考。文檔暫時不用看太多,小程式跑起來了就可以(雲開發的文檔較多,下文會對所涉及的内容會給出相應的文檔連結)。
由于我們要開發的小程式涉及到資料庫、雲函數及雲存儲,接下來将按照這幾個部分進行介紹。
手寫表結構實在是有點慢,而且一不小心還有可能犯錯,于是借助了内容管理系統,這可以大大提高工作效率。詳細的文檔請移步CloudBase CMS。
使用上面的内容管理系統,我們既可以友善管理内容模型(注意内容模型的名字不要随便改,不然内容那塊會出問題,是以起名字要慎重),還可以建立内容。
除了上面的内容管理系統,我們同樣還可以在雲開發面闆的資料庫中進行管理。如下圖:
除此之外,進階操作還提供了一些資料庫操作執行個體,如下圖:
這裡先記住操作資料庫三步走(具體的執行個體操作我們在雲函數中繼續):
選擇哪個環境的資料庫
選擇哪個集合
對集合進行增删改查操作
更詳情的文檔參考:資料庫增删改查SDK
在内容管理系統中,文檔 ID 屬于系統字段,目前隻能自動生成不可自定義。但是有些情況下,我們還是想可以自定義文檔 ID 的,如統一分類的資料。
所幸還有一條路,雲開發面闆的資料庫中是支援自定義的,是以如果真需要自定義的文檔 ID,可以直接在雲開發面闆的資料庫中定義。不過雲開發面闆的資料庫自定義 ID 的那個字段輸入框,是有長度限制的。
文檔 ID 在查詢單個資料記錄時非常有用,如擷取某個使用者資訊:
首先我們對着我的第一個雲函數文檔,實作我們的第一個雲函數。
這裡面主要有一個庫和兩個 API 需要注意:
一個庫文檔:wx-server-sdk
兩個 API 文檔:getWXContext (一定要注意不同的調用方式可能會傳回不同的資料)、callFunction
接下來,我們可以按照雲函數的文檔,一直看到本地調試。
看完這些之後,我們就可以正式開始雲函數開發了。下面以擷取使用者雲函數為例。
我們首先建立一個 user 雲函數(在雲函數根目錄上右鍵,在右鍵菜單中,選擇建立一個新的 Node.js 雲函數,命名為 user)。
安裝依賴檔案
右鍵 user 檔案夾右鍵,選擇在内建終端中打開,輸入 <code>npm i</code> 指令,安裝依賴檔案。
開啟雲函數本地調試
依賴檔案安裝完成後,同樣右鍵 user 檔案夾,選擇開啟雲函數本地調試。
打開的雲函數本地調試面闆如下,注意右邊的那個勾選。
編寫雲函數
整體代碼大概如下(可根據 type 類型判斷要請求的資料):
小程式端調用
先在 app.js 中完成雲能力初始化,代碼如下:(文檔可參考:小程式端雲能力初始化文檔)。
在需要的地方調用雲函數 user,代碼如下:
上傳并部署
調試開發完畢,就可以上傳部署了,如下圖:
我們所有的雲函數都可以通過雲開發面闆中進行管理,如下圖:
其實在快速開始裡面,預設建立的小程式裡面就有上傳圖檔的一個雲開發執行個體,對着裡面的執行個體抄一遍,把一些資訊列印出來看看就會用了。
具體文檔參考: 檔案存儲 。
當然對于使用者上傳的圖檔來說,最好還得有個裁剪的功能,小程式裁剪圖檔的元件網上也有很多,找個合适自己即可。
對于存儲的内容,我們同樣可以通過雲開發面闆檢視,如下圖:
雲開發還提供了一種新的方法去調用開放資料:開放資料校驗與解密 。
下面我們以擷取電話号碼為例,具體實戰下:
使用 <code>button</code> 元件,<code>open-type</code> 為 <code>getPhoneNumber</code>
在 <code>getPhoneNumber</code> 中拿到 <code>cloudID</code>
編寫雲函數 user,調用 getOpenData API,主要代碼為:
小程式端調用雲函數,這樣就拿到了電話号碼。
總體來說,小程式雲開發圓了我們全棧的夢,一個人一把梭是快樂的,但是摸索的過程中其實也是有挑戰的,雲開發不斷的發展優化,需要我們跟緊步伐~
文章來源:騰訊IMWEB團隊
雲開發(Tencent CloudBase,TCB)是騰訊雲提供的雲原生一體化開發環境和工具平台,為開發者提供高可用、自動彈性擴縮的後端雲服務,包含計算、存儲、托管等serverless化能力,可用于雲端一體化開發多種端應用(小程式,公衆号,Web 應用,Flutter 用戶端等),幫助開發者統一建構和管理後端服務和雲資源,避免了應用開發過程中繁瑣的伺服器搭建及運維,開發者可以專注于業務邏輯的實作,開發門檻更低,效率更高。
開通雲開發:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite
産品文檔:https://cloud.tencent.com/product/tcb?from=12763
技術文檔:https://cloudbase.net?from=10004
技術交流群、最新資訊關注微信公衆号【騰訊雲開發CloudBase】