小程序開發(fā)之云函數(shù)的使用教程詳解
1、云函數(shù)
云函數(shù)是部署在云端的函數(shù),他和小程序本地的函數(shù)存在很大的區(qū)別,云函數(shù)應(yīng)用涉及云端云函數(shù)定義和本地引用云端云函數(shù)的API接口兩個問題。
1.1 云函數(shù)API和云函數(shù)創(chuàng)建
1.1.1 小程序云函數(shù)API接口
小程序云函數(shù)API接口是指小程序調(diào)用云端函數(shù)的接口,(和wx.request()類似)。小程序提供了wx.cloud.callFunction()接口作為云函數(shù)API接口,它的屬性如表所示。
屬性 | 類型 | 默認值 | 必填 | 說明 |
---|---|---|---|---|
name | string | 是 | 云函數(shù)名 | |
data | Object | 否 | 傳遞給云函數(shù)的參數(shù),在云函數(shù)中可通過 event 參數(shù)獲取 | |
config | Object | 否 | 配置 | |
success | Function | 否 | 返回云函數(shù)調(diào)用的返回結(jié)果 | |
fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) | |
complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行) |
官網(wǎng)示例代碼:
假設(shè)已有一個云函數(shù) add:
exports.add = async (event, context, cb) => { return event.x + event.y }
在小程序端發(fā)起對云函數(shù) add 的調(diào)用:
wx.cloud.callFunction({ // 要調(diào)用的云函數(shù)名稱 name: 'add', // 傳遞給云函數(shù)的event參數(shù) data: { x: 1, y: 2, } }).then(res => { // output: res.result === 3 }).catch(err => { // handle error })
1.1.2 云函數(shù)的創(chuàng)建
創(chuàng)建云函數(shù)的方法是右擊項目中的cloudfunctions文件夾,如下圖所示,選擇“新建Node.js云函數(shù)”選項,開發(fā)者工具會自動生成一個文件夾,在文本框中輸入的文件夾即是云函數(shù)名。
創(chuàng)建好之后的界面:
在創(chuàng)建好云函數(shù)之后,即可根據(jù)自己的需要在main函數(shù)中編寫自己的代碼。使用回車結(jié)束云函數(shù)的創(chuàng)建還有一個好處是可以不用上傳和部署云函數(shù),系統(tǒng)會自動上傳和部署函數(shù)到云端,即云函數(shù)對應(yīng)的文件夾圖標(biāo)會自動變成云朵摸樣。
2、云函數(shù)案例
本例分別采用云函數(shù)和本地函數(shù)實現(xiàn)加法操作和劍法操作,請對比區(qū)別。
firstcloudfunction.wxml:
<view class="data"><input placeholder="請輸入a" focus="true" bindinput="binda"></input></view> <view class="data"><input placeholder="請輸入b" focus="true" bindinput="bindb"></input></view> <view class="partition"></view> <view class="arithmetic"><view bindtap='add'><button size="mini" class='bt' >+</button></view><view>{{add}}</view></view> <view class="arithmetic"><view bindtap='sub'><button size="mini" class='bt' >-</button></view><view>{{sub}}</view></view>
firstcloudfunction.js:
const app = getApp() Page({ data: { a:1, b:1, add:'', sub:'' }, onLoad: function() { }, binda:function(e){ this.setData({ a: e.detail.value }) console.log(e.detail.value) }, bindb: function (e) { this.setData({ b: e.detail.value }) console.log(e.detail.value) }, add:function(e){ var that=this; wx.cloud.callFunction({ // 云函數(shù)名稱 name: 'add', // 傳給云函數(shù)的參數(shù) data: { a: that.data.a, b: that.data.b, }, success: function (res) { console.log(res.result.add) var c = res.result.add that.setData({ add: "a+b=" + c }) }, fail: console.error }) }, sub: function (e) { var c = Number(this.data.a) - Number(this.data.b) console.log(c) this.setData({ sub: "a-b=" + c }) } })
代碼講解:binda和bindb兩個點擊函數(shù)從firstcloudfunction.wxml文件中獲取用戶輸入的兩個操作數(shù)a和b,減法函數(shù)sub是普通的本地JavaScript函數(shù),而加法函數(shù)add則采用了wx.cloud.callFunction()接口調(diào)用云函數(shù)add。本例重點是云函數(shù)的創(chuàng)建和部署。
云函數(shù)add/index.js的代碼如下:
exports.main = async (event, context) => { return{add:Number(event.a)+Number(event.b)} }
實現(xiàn)效果:
以上就是小程序開發(fā)之云函數(shù)的使用教程詳解的詳細內(nèi)容,更多關(guān)于小程序云函數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Bootstrap的popover(彈出框)在append后彈不出(失效)
這篇文章主要介紹了Bootstrap的popover(彈出框)在append后彈不出,失效的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02jquery根據(jù)錨點offset值實現(xiàn)動畫切換
點擊后僵硬的切換是不是很不爽,下面為大家介紹的是根據(jù)錨點offset值來實現(xiàn)動畫切換,喜歡的朋友不要錯過2014-09-09JavaScript實現(xiàn)微信小程序打卡時鐘項目實例
這篇文章主要為大家介紹了JavaScript實現(xiàn)微信小程序打卡時鐘項目實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04JavaScript實現(xiàn)瀏覽器網(wǎng)頁自動滾動并點擊的示例代碼
這篇文章主要介紹了JavaScript實現(xiàn)瀏覽器網(wǎng)頁的自動滾動并點擊的示例代碼,幫助大家更好的理解和學(xué)習(xí)JavaScript的使用,感興趣的朋友可以了解下2020-12-12前端js使用xlsx-js-style導(dǎo)出Excel文件并修飾單元格樣式
這篇文章主要給大家介紹了關(guān)于前端js使用xlsx-js-style導(dǎo)出Excel文件并修飾單元格樣式的相關(guān)資料,前端開發(fā)過程中經(jīng)常遇到導(dǎo)出excel的需求,需要的朋友可以參考下2023-08-08