国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【云開(kāi)發(fā)】小程序端中使用云函數(shù)的介紹

這篇具有很好參考價(jià)值的文章主要介紹了【云開(kāi)發(fā)】小程序端中使用云函數(shù)的介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

云函數(shù)

云函數(shù)基本介紹

云函數(shù)即在云端(服務(wù)器端)運(yùn)行的函數(shù):

在物理設(shè)計(jì)上,一個(gè)云函數(shù)可由多個(gè)文件組成,占用一定量的CPU 內(nèi)存等計(jì)算資源;

各云函數(shù)完全獨(dú)立,可分別部署在不同的地區(qū);

開(kāi)發(fā)者無(wú)需購(gòu)買(mǎi)、搭建服務(wù)器,只需編寫(xiě)函數(shù)代碼并部署到云端即可在小程序端調(diào)用;

同時(shí)云函數(shù)之間也可互相調(diào)用;

云函數(shù)的編寫(xiě)方式:

一個(gè)云函數(shù)的寫(xiě)法與一個(gè)在本地定義的 JavaScript 方法無(wú)異,代碼運(yùn)行在云端 Node.js 中;

當(dāng)云函數(shù)被小程序端調(diào)用時(shí),定義的代碼會(huì)被放在Node.js 運(yùn)行環(huán)境中執(zhí)行;

我們可以如在 Node.js 環(huán)境中使用 JavaScript 一樣在云函數(shù)中進(jìn)行網(wǎng)絡(luò)請(qǐng)求等操作,而且我們還可以通過(guò)云函數(shù)后端 SDK 搭配使用多種服務(wù),比如使用云函數(shù) SDK 中提供的數(shù)據(jù)庫(kù)和存儲(chǔ) API 進(jìn)行數(shù)據(jù)庫(kù)和存儲(chǔ)的操作

云開(kāi)發(fā)的云函數(shù)的獨(dú)特優(yōu)勢(shì)在于與微信登錄鑒權(quán)的無(wú)縫整合。

當(dāng)小程序端調(diào)用云函數(shù)時(shí),云函數(shù)的傳入?yún)?shù)中會(huì)被注入小程序端用戶的 openid,開(kāi)發(fā)者無(wú)需校驗(yàn) openid 的正確性因?yàn)槲?信已經(jīng)完成了這部分鑒權(quán),開(kāi)發(fā)者可以直接使用該 openid。


云函數(shù)基本使用

可以右鍵云函數(shù)的文件夾, 選擇云環(huán)境

【云開(kāi)發(fā)】小程序端中使用云函數(shù)的介紹

云函數(shù)的使用過(guò)程:

右鍵點(diǎn)擊云函數(shù)文件夾, 創(chuàng)建一個(gè)云函數(shù)

【云開(kāi)發(fā)】小程序端中使用云函數(shù)的介紹

創(chuàng)建完成后, 可以在moudle.js文件的入口函數(shù)中編寫(xiě)云函數(shù)的代碼邏輯

const cloud = require('wx-server-sdk')

cloud.init()

// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
  // 自己編寫(xiě)的云函數(shù)
	return "Hello Cloud Function"
}

編寫(xiě)完成后將云函數(shù)上傳到云端

【云開(kāi)發(fā)】小程序端中使用云函數(shù)的介紹

上傳完成后, 可以在小程序中端調(diào)用API wx.cloud.callFunction對(duì)云函數(shù)進(jìn)行調(diào)用

<button type="primary" bindtap="onTestTap">測(cè)試云函數(shù)</button>
Page({
	async onTestTap() {
		const res = await wx.cloud.callFunction({
			name: "test"
		})
		console.log(res);
	}
})

云函數(shù)傳遞參數(shù)

例如: 讓云函數(shù)幫我們計(jì)算兩個(gè)數(shù)字的和

首先創(chuàng)建一個(gè)云函數(shù)sum, 并在云函數(shù)中編寫(xiě)邏輯代碼, 編寫(xiě)完成后上傳云函數(shù)

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

cloud.init()

// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
	// 獲取調(diào)用者傳入的參數(shù), event中獲取傳入的參數(shù)
	const { num1, num2 } = event
	return num1 + num2
}

上傳完成后, 在小程序端調(diào)用云函數(shù), 并且傳入?yún)?shù)


async onSumTap() {
  const num1 = 20
  const num2 = 40

  const res = await wx.cloud.callFunction({
    name: "sum",
    // data中傳遞參數(shù)
    data: {num1, num2}
  })
  console.log(res);
}

云函數(shù)獲取openID

openid可以用于作為用戶身份的標(biāo)識(shí)符,所以在云開(kāi)發(fā)中我們可以獲取用戶openid來(lái)驗(yàn)證用戶是否已經(jīng)登錄。

openid獲取方式, 在云函數(shù)中獲取微信調(diào)用上下文cloud.getWXContext():Object

// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
	const wxContext = cloud.getWXContext()

	return {
		openid: wxContext.OPENID,
		unionid: wxContext.UNIONID,
	}
}

在小程序端調(diào)用云函數(shù)即可獲得openid

<button type="primary" bindtap="onGetOpenId">獲取openid</button>
async onGetOpenId() {
  const res = await wx.cloud.callFunction({
    name: "getopenid"
  })
  console.log(res);
}

云函數(shù)操作數(shù)據(jù)庫(kù)

云函數(shù)中對(duì)數(shù)據(jù)庫(kù)的操作限制更少,所以我們常常會(huì)在云函數(shù)中進(jìn)行數(shù)據(jù)庫(kù)操作:

比如可以根據(jù)條件一次性刪除多條數(shù)據(jù);

比如對(duì)數(shù)據(jù)請(qǐng)求的個(gè)數(shù)沒(méi)有嚴(yán)格的限制, 小程序端一次可以請(qǐng)求20條數(shù)據(jù), 而云函數(shù)一次可以請(qǐng)求100條數(shù)據(jù);

在云函數(shù)操作數(shù)據(jù)庫(kù)的方式和小程序端是類似的, 只不過(guò)是編寫(xiě)到了云函數(shù)中

// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
	// 獲取數(shù)據(jù)庫(kù)和集合
	const db = cloud.database()
	const studentsCol = db.collection("students")
	// 從集合中獲取數(shù)據(jù)
	const res = await studentsCol.get()
	// 將數(shù)據(jù)返回出去
	return res
}

編寫(xiě)完云函數(shù)上傳后, 我們就可以在小程序端調(diào)用云函數(shù)獲取結(jié)果

<button type="primary" bindtap="onGetStuengts">獲取數(shù)據(jù)</button>
async onGetStuengts() {
  const res = await wx.cloud.callFunction({
    name: "getStudents"
  })
  console.log(res);
}

云函數(shù)發(fā)送http請(qǐng)求

云函數(shù)中支持對(duì)其他服務(wù)器進(jìn)行http請(qǐng)求,也支持使用axios庫(kù)發(fā)生網(wǎng)絡(luò)請(qǐng)求:

所以對(duì)于小程序某些域名的限制無(wú)法配置時(shí),我們可以通過(guò)云函數(shù)作為代理來(lái)請(qǐng)求數(shù)據(jù),再返回給小程序端;

進(jìn)入編寫(xiě)云函數(shù)的文件夾下, 安裝axios庫(kù)npm i axios發(fā)送網(wǎng)絡(luò)請(qǐng)求, 安裝完成后就可以在云函數(shù)中通過(guò)axios發(fā)送網(wǎng)絡(luò)請(qǐng)求

// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
// 引入axios
const axios = require('axios')

cloud.init()

// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
	// 從自己的服務(wù)器請(qǐng)求數(shù)據(jù)
	const res = await axios.get("http://123.207.32.32:8000/home/multidata")
	// 將數(shù)據(jù)返回給客戶端
	return res.data
}

在小程序端我們就可以調(diào)用云函數(shù)獲取到axios返回的數(shù)據(jù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-405403.html

async onGetHome() {
  const res = await wx.cloud.callFunction({
    name: "getHomeData"
  })
  console.log(res);
}

到了這里,關(guān)于【云開(kāi)發(fā)】小程序端中使用云函數(shù)的介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包