微信小程序雲開發,是基於 Serverless 的一站式後端雲服務,涵蓋函數、數據庫、存儲、CDN等服務,免後端運維。基於雲開發能夠免鑑權調用微信全部開放能力。html
打開小程序項目,點擊工具欄「雲開發」進行開通:node
根據對話框提示,建立雲環境:git
選擇默認免費配額:typescript
「提交訂單」,建立完成。數據庫
此後,就能夠打開「雲開發控制檯」了:json
雲函數是一段運行在雲端的代碼,無需管理服務器,在開發工具內編寫、一鍵上傳部署便可運行後端代碼。小程序
首先,配置小程序項目。編輯 project.config.json
添加 cloudfunctionRoot
:後端
{ // ... "cloudfunctionRoot": "./cloudfunction/", "cloudfunctionTemplateRoot": "cloudfunctionTemplate" }
並於根目錄新建該目錄 cloudfunction
,該目錄圖標會變成「雲目錄圖標」。微信小程序
而後,右鍵雲函數根目錄,「新建 Node.js 雲函數」:服務器
輸入雲函數名稱,就會建立好模板:
編輯 index.js
修改爲求和:
// 雲函數入口文件 const cloud = require("wx-server-sdk"); cloud.init(); // 雲函數入口函數 exports.main = async (event, context) => { const wxContext = cloud.getWXContext(); return { sum: event.a + event.b, }; };
event
是觸發雲函數的事件。小程序端調用時,就是其請求參數。return
返回雲函數計算的結果。小程序端調用時,就是其響應內容。Taro 是一個開放式跨端跨框架解決方案,支持使用 React/Vue/Nerv 等框架來開發 微信/京東/百度/支付寶/字節跳動/QQ 小程序/H5 等應用。
快速建立小程序應用,可見 Taro3 快速開始。
Taro 使用雲開發,首先須要初始化雲環境:
import Taro from "@tarojs/taro"; Taro.cloud.init({ env: "gocoding-xxx", });
其中 env
環境 ID ,可見「雲開發控制檯」的「設置」:
而後,調用該雲函數:
Taro.cloud .callFunction({ name: "photo-lucky", data: { a: 1, b: 2, }, }) .then((res) => { console.log(res); }) .catch((err) => { console.log(err); });
name
是雲函數的名稱。data
是請求參數,對應雲函數的 event
。右鍵雲函數目錄,選擇「上傳並部署」:
編譯運行小程序,可見打印結果:
打開「雲開發控制檯」的「雲函數」:
打開「本地調試」,右側選中「開啓本地調試」:
以後,小程序調用雲函數就會進「本地調試」。
雲函數模板中默認 require
了 wx-server-sdk
,這是一個幫助咱們在雲函數中操做數據庫、存儲以及調用其餘雲函數的微信提供的庫。關於 wx-server-sdk
的使用可見 在雲函數中使用 wx-server-sdk 。
雲函數是 Node.js
應用,原想直接使用 TypeScript
開發並運行,可參考:
但其調試時默認主入口是 index.js
,試了下配置,但沒什麼用。報錯以下:
因此,想用 TypeScript
的話,須要 tsc
編譯發佈出 js
後再調試。
歡迎關注 GoCoding 公衆號,分享平常 Coding 中實用的小技巧、小知識!