五十一、微信小程序云開(kāi)發(fā)中的云函數(shù)
@Author:Runsen
暑假很長(zhǎng),明年就是找工作的時(shí)候了。這個(gè)時(shí)候必須比之前還要拼命。
百無(wú)聊賴,看過(guò)文檔才發(fā)現(xiàn),微信小程序已將云函數(shù),對(duì)象存儲(chǔ)和云數(shù)據(jù)庫(kù)這些都搬了進(jìn)來(lái),由于前幾天剛剛看過(guò)這些方面的東西,所以感覺(jué)還是挺簡(jiǎn)單的。云函數(shù)這個(gè)概念在之前學(xué)習(xí)的時(shí)候沒(méi)有注意到。
今天是2020年7月24日。不學(xué)習(xí),不復(fù)習(xí),那和一條咸魚(yú)差不多。 今天繼續(xù)學(xué)習(xí)復(fù)習(xí)微信小程序中的云開(kāi)發(fā)中的云函數(shù)。官方文檔
文章目錄
云函數(shù)
新建云函數(shù)
調(diào)用云函數(shù)
云函數(shù)
官方解釋:一個(gè)云函數(shù)的寫(xiě)法與一個(gè)在本地定義的 JavaScript 方法無(wú)異,代碼運(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)容都覆蓋了。
在云開(kāi)發(fā)控制臺(tái)中,已經(jīng)清空了我的云函數(shù)。
新建云函數(shù)
在項(xiàng)目根目錄找到 project.config.json 文件中 cloudfunctionRoot ,指定本地已存在的目錄作為云函數(shù)的本地根目錄
因此可以在cloudfunctionRoot文件夾中新建Node.js云函數(shù)。
這里我取名為sum,就是來(lái)簡(jiǎn)單的實(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
1
調(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, } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
我們實(shí)現(xiàn)的是兩個(gè)數(shù)的求和,因此不需要這么復(fù)雜。
將sum中的index.js修改成這樣,并上傳成功。
// 云函數(shù)入口函數(shù) exports.main = async (event, context) => { return { sum:event.a + event.b } }
1
2
3
4
5
6
7
下面在頁(yè)面上使用云函數(shù)sum,這是index.wxml頁(yè)面的代碼。
1
2
下面是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) }) }, }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在云函數(shù)中日志可以看到,調(diào)用成功。
下面我們看下云開(kāi)發(fā)中的獲取用戶的Openid,記得上傳云函數(shù)。
在index.wxml中定義了一個(gè)onGetOpenid方法。
1
繼續(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.openid wx.navigateTo({ url: '../userConsole/userConsole', }) }, fail: err => { console.error('[云函數(shù)] [login] 調(diào)用失敗', err) wx.navigateTo({ url: '../deployFunctions/deployFunctions', }) } }) },
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
下面是云開(kāi)發(fā)中云函數(shù)的效果
JavaScript 小程序
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。