五十一、微信小程序云开发中的云函数
@Author:Runsen
暑假很長,明年就是找工作的時候了。這個時候必須比之前還要拼命。
百無聊賴,看過文檔才發現,微信小程序已將云函數,對象存儲和云數據庫這些都搬了進來,由于前幾天剛剛看過這些方面的東西,所以感覺還是挺簡單的。云函數這個概念在之前學習的時候沒有注意到。
今天是2020年7月24日。不學習,不復習,那和一條咸魚差不多。 今天繼續學習復習微信小程序中的云開發中的云函數。官方文檔
文章目錄
- 云函數
- 新建云函數
- 調用云函數
云函數
官方解釋:一個云函數的寫法與一個在本地定義的 JavaScript 方法無異,代碼運行在云端 Node.js 中。當云函數被小程序端調用時,定義的代碼會被放在 Node.js 運行環境中執行。
其實云函數就是nodejs的函數差不多。所以之前的node到vue基本上內容都覆蓋了。
在云開發控制臺中,已經清空了我的云函數。
新建云函數
在項目根目錄找到 project.config.json 文件中 cloudfunctionRoot ,指定本地已存在的目錄作為云函數的本地根目錄
因此可以在cloudfunctionRoot文件夾中新建Node.js云函數。
這里我取名為sum,就是來簡單的實現下兩個數求和。
云函數中使用 wx-server-sdk 需在對應云函數目錄下安裝 wx-server-sdk 依賴,在創建云函數時會在云函數目錄下默認新建一個 package.json 并提示用戶是否立即本地安裝依賴。
npm install --save wx-server-sdk@latest調用云函數
下面是sum云函數的代碼
// 云函數入口文件 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,} }我們實現的是兩個數的求和,因此不需要這么復雜。
將sum中的index.js修改成這樣,并上傳成功。
// 云函數入口函數 exports.main = async (event, context) => {return {sum:event.a + event.b} }下面在頁面上使用云函數sum,這是index.wxml頁面的代碼。
<view>云函數</view> <button bindtap="sum">調用云函數</button>下面是index.js中的代碼
Page(sum:function(){wx.cloud.callFunction({name:"sum",data: {a:1 ,b:2}}).then(res=>{console.log(res)}).catch(err=>{console.log(err)})}, }在云函數中日志可以看到,調用成功。
下面我們看下云開發中的獲取用戶的Openid,記得上傳云函數。
在index.wxml中定義了一個onGetOpenid方法。
<button class="userinfo-nickname" bindtap="onGetOpenid">點擊獲取 openid</button>繼續看一下index.js中的onGetOpenid方法,其實就是調用了login的云函數
onGetOpenid: function() {// 調用云函數wx.cloud.callFunction({name: 'login',data: {},success: res => {console.log('[云函數] [login] user openid: ', res.result.openid)app.globalData.openid = res.result.openidwx.navigateTo({url: '../userConsole/userConsole',})},fail: err => {console.error('[云函數] [login] 調用失敗', err)wx.navigateTo({url: '../deployFunctions/deployFunctions',})}})},下面是云開發中云函數的效果
總結
以上是生活随笔為你收集整理的五十一、微信小程序云开发中的云函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三斤笋可以做多少笋干呢?
- 下一篇: 五十二、微信小程序云开发中的云存储