上次簡單建立了一個雲開發的模板,介紹了下數據是如何流轉的。今天來看看本地函數如何變成雲函數。html
首先來看下官網對於雲函數的定義,詳見 連接node
雲函數即在雲端(服務器端)運行的函數。在物理設計上,一個雲函數可由多個文件組成,佔用必定量的 CPU 內存等計算資源;各雲函數徹底獨立;可分別部署在不一樣的地區。開發者無需購買、搭建服務器,只需編寫函數代碼並部署到雲端便可在小程序端調用,同時雲函數之間也可互相調用。數據庫
一個雲函數的寫法與一個在本地定義的 JavaScript 方法無異,代碼運行在雲端 Node.js 中。當雲函數被小程序端調用時,定義的代碼會被放在 Node.js 運行環境中執行。咱們能夠如在 Node.js 環境中使用 JavaScript 同樣在雲函數中進行網絡請求等操做,並且咱們還能夠經過雲函數後端 SDK 搭配使用多種服務,好比使用雲函數 SDK 中提供的數據庫和存儲 API 進行數據庫和存儲的操做,這部分可參考數據庫和存儲後端 API 文檔。npm
雲開發的雲函數的獨特優點在於與微信登陸鑑權的無縫整合。當小程序端調用雲函數時,雲函數的傳入參數中會被注入小程序端用戶的 openid,開發者無需校驗 openid 的正確性由於微信已經完成了這部分鑑權,開發者能夠直接使用該 openid。json
先從雲開發控制檯把我以前建立成功的雲函數login、add刪掉小程序
然後開始咱們的主題。後端
確保project.config.json
文件中指定本地已存在的目錄做爲雲函數的本地根目錄api
咱們在雲函數根目錄上右鍵,在右鍵菜單中,能夠選擇建立一個新的 Node.js 雲函數,咱們將該雲函數命名爲 add。服務器
開發者工具在本地建立出雲函數目錄和入口 index.js 文件,同時在線上環境中建立出對應的雲函數。微信
建立成功後,工具會提示是否當即本地安裝依賴,肯定後工具會自動安裝 wx-server-sdk
。咱們能夠看到相似以下的一個雲函數模板:
// 雲函數入口文件 const cloud = require('wx-server-sdk') cloud.init() // 雲函數入口函數 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } }
然後咱們填充業務邏輯,一個簡單的加法
本段代碼的意思是將傳入的 a 和 b 相加並做爲 sum 字段返回給調用端。
在小程序中調用這個雲函數前,咱們還須要先將該雲函數部署到雲端。在雲函數目錄上右鍵,在右鍵菜單中,咱們能夠將雲函數總體打包上傳並部署到線上環境中。
會提示以下:
如提示,未安裝依賴。須要先安裝nodejs,安裝步驟(nodejs連接 npm連接)不在此展開,安裝完成後,cmd到add文件夾下,運行命令npm install wx-server-sdk,便可安裝依賴包。
安裝完成後再將雲函數總體打包上傳並部署到線上環境就不會有錯誤提示了。
能夠在雲端進行簡單的測試
運行測試後,可看測試結果
至此,一個本地函數就上傳至雲端了,成爲了一個雲函數。