微信小程序雲函數是一個好東西,至關於微信爲咱們提供了一個能夠跑node.js的服務器,而且能夠外部經過API的方式調用雲函數,不過微信的文檔一貫寫的不明不白,初學的時候踩了很多坑,在這裏記錄下來。
一、建立微信雲函數
在微信開發者工具工程文件列表最頂端的「cloudfunctions」右鍵「新建Node.js雲函數」node
這時候建立的雲函數是在本地目錄下沒法運行的,運行須上傳到服務器,在建立的雲函數名稱上右鍵會出現上傳並部署菜單項:
這裏的「上傳並部署:全部文件」 和 「上傳並部署:雲端安裝依賴(不上傳node_modules)」是什麼意思呢?大多數狀況下,咱們編寫和運行node程序,須要經過npm install安裝各類庫,npm install 會生成node_modules目錄並安裝相應的依賴庫。若是咱們的雲函數沒有使用到任何依賴庫,咱們只須選擇「上傳並部署:雲端安裝依賴(不上傳node_modules)」就能夠了,雲服務器會自動安裝惟一的依賴「wx-server-sdk」;若是咱們的雲函數安裝了其它庫,則須要手動安裝wx-server-sdk依賴:npm
npm install wx-server-sdk --production`
而後選擇「上傳並部署:全部文件」 便可。(我用的是:小程序
npm install --save wx-server-sdk@latest
若是不加@latest會報錯)微信小程序
二、雲函數安裝依賴
在雲函數名稱上右鍵選擇「在外部終端窗口中打開」:
而後npm install xxxx 。api
三、雲函數的查看
部署好的雲函數能夠經過「雲開發」 - 「雲函數」來進行查看:服務器
四、微信小程序調用雲函數微信
wx.cloud.callFunction({ name: 'add', data: { a: 12, b: 19 } }).then(console.log)
五、外部http api調用雲函數微信開發
https://api.weixin.qq.com/tcb/invokecloudfunction?access_token=ACCESS_TOKEN&env=ENV&name=functionName
六、注意事項:
在雲函數中使用其它雲函數時,無需wx.cloud.xxx,直接cloud.xxx便可函數