小程序之雲函數的創建與使用


小程序雲開發之雲函數

雲函數的作用

我所知道的是,雲函數可以做一些前端做不了,必須在服務器端做的復雜的操作。

比如:
數據庫的多條紀錄同時更新與數據庫的多條紀錄同時刪除,這是在前端無法實現的,然后就可以通過雲函數來實現。

創建雲函數

我們需要在微信開發者工具的文件管理里面創建一個目錄和一個nodejs雲函數。

Mou icon

創建好雲函數后需要在根目錄下的 project.config.json 中添加如下代碼:

{
	"cloudfunctionRoot": "./functions/"
}

當我們創建好雲函數后,程序會自動給我們配置一些代碼如下:

// 雲函數入口文件
const cloud = require('wx-server-sdk')

cloud.init() //初始化雲函數
const db = cloud.database()
const _ = db.command
// 雲函數入口函數
//event:觸發雲函數的事件
exports.main = async (event, context) => {
	 const {OPENID, APPID, UNIONID} = cloud.getWXContext()

	  return {
	    OPENID,
	    APPID,
	    UNIONID,
	  }	
}

注:在剛創建的雲函數文件中,沒有cloud.init()這個語句,我們需要自己添加進去

使用雲函數

當我們創建好雲函數后,就可以去使用它啦!

首先

我們需要將自己創建的雲函數上傳並部署到雲端。

Mou icon

注:需要選擇雲端安裝依賴(不上傳node_modules)這一項

然后

我們需要在前台的js文件中去使用。
這里,我會在onReady生命周期使用。代碼如下:

wx.cloud.callFunction({
  name: 'sum',
  complete: res => {
    console.log('callFunction test result: ', res)
  }
})

name:你所創建的雲函數的名字

res:得到的是雲函數執行后return的結果

比如:我們在雲函數文件中添加如下代碼:

 /*return {
    OPENID,
    APPID,
    UNIONID,
  }*/

 return {
 	count:3
 }

注:注釋的代碼是上面將要替換掉的,替換為count:3

前端運行得到的結果就是count:3

所以

前端res得到的結果就是雲函數return回去的值。

到這里,應該就知道雲函數是如何工作的了吧。

使用雲函數進行多條紀錄更新

數據庫結構:

{
	"_id": "XBCTC8DR1TiNy2Ad",
	"_openid": "oB-Ir5LDd_zO1lLCVs4kMSiLw-Km",
	"username":"xiaoming",
	"age":19
}

雲函數代碼:

const cloud = require('wx-server-sdk')
cloud.init();
const db = cloud.database()

exports.main = async (event, context) => {
  try {
    return await db.collection('testInfo').where({
      age:80
    }).remove()
  } catch (e) {
    console.error(e)
  }
}

使用雲函數后,數據庫結構里面的age將會改為80

注:以上便是雲函數的創建與使用了,因初學小程序,若有不足之處,請多多指正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM