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