QQ小程序 我的第一個云函數(shù)

2020-07-10 11:10 更新

我們以定義一個將兩個數(shù)字相加的函數(shù)作為我們第一個云函數(shù)的示例。 在項目根目錄找到 project.config.json 文件,新增 cloudfunctionRoot 字段,指定本地已存在的目錄作為云函數(shù)的本地根目錄 示例:

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

完成指定之后,云函數(shù)的根目錄的右邊會出現(xiàn) “云圖標”,云函數(shù)根目錄下的第一級目錄(云函數(shù)目錄)是與云函數(shù)名字相同的,如果對應(yīng)的線上環(huán)境存在該云函數(shù),則會也一個 “云圖標”來標明。 接著,我們在云函數(shù)根目錄上右鍵,在右鍵菜單中,可以選擇創(chuàng)建一個新的 Node.js 云函數(shù),我們將該云函數(shù)命名為 add。開發(fā)者工具在本地創(chuàng)建出云函數(shù)目錄和入口 index.js 文件,同時在線上環(huán)境中創(chuàng)建出對應(yīng)的云函數(shù)。我們可以看到類似如下的一個云函數(shù)模板:

const app = require("qq-server-sdk");
// ...
exports.main = async (event, context) => {
  // ...
  return {
    event,
    context
  }
}

云函數(shù)的傳入?yún)?shù)有兩個,一個是 event 對象,一個是 context 對象。event 指的是觸發(fā)云函數(shù)的事件,當小程序端調(diào)用云函數(shù)時,event 就是小程序端調(diào)用云函數(shù)時傳入的參數(shù),外加后端自動注入的小程序用戶的 openid 和小程序的 appid。context 對象包含了此處調(diào)用的調(diào)用信息和運行狀態(tài),可以用它來了解服務(wù)運行的情況。在模板中也默認 require 了 qq-server-sdk,這是一個幫助我們在云函數(shù)中操作數(shù)據(jù)庫、存儲以及調(diào)用其他云函數(shù)的庫,關(guān)于 qq-server-sdk 的使用,將在接下來的章節(jié)介紹。 我們修改一下模板的返回值:

// ...
exports.main = async (event, context) => {
  // ...
  return {
    sum: event.a + event.b
  }
}

本段代碼的意思是將傳入的 a 和 b 相加并作為 sum 字段返回給調(diào)用端。 在小程序中調(diào)用這個云函數(shù)前,我們還需要先將該云函數(shù)部署到云端。在云函數(shù)目錄上右鍵,在右鍵菜單中,我們可以將云函數(shù)整體打包上傳并部署到線上環(huán)境中。 部署完成后,我們可以在小程序中調(diào)用該云函數(shù):

qq.cloud.callFunction({
  // 云函數(shù)名稱
  name: 'add',
  // 傳給云函數(shù)的參數(shù)
  data: {
    a: 1,
    b: 2,
  },
})
.then(res => {
  console.log(res.result) // 3
})
.catch(console.error)

那么到這里,我們就成功創(chuàng)建了我們的第一個云函數(shù),并在小程序中成功調(diào)用!

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號