日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)小程序云教程:云開發(fā)云接入與HTTP觸發(fā)

云接入是云開發(fā)基于云函數(shù)之上為開發(fā)者提供的HTTP訪問服務(wù),開發(fā)者可以輕松使用 POST、PUT、GET、DELETE等方法通過 HTTP 請(qǐng)求訪問到云開發(fā)環(huán)境內(nèi)的全部資源,而不需要使用Web端 SDK。而且云接入天然支持跨域請(qǐng)求,將域名添加至Web 安全域名中,這個(gè)域名里的網(wǎng)頁便可以跨域訪問云接入。當(dāng)使用云函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)預(yù)配TLS證書,因此我們可以通過安全連接調(diào)用云函數(shù)。

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、潮陽ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的潮陽網(wǎng)站制作公司

一、使用云接入訪問云函數(shù)

給云函數(shù)啟用云接入的方式非常簡單,我們可以使用騰訊云云開發(fā)網(wǎng)頁控制臺(tái)以及Cloudbase Cli命令兩種方式。

1、云開發(fā)控制臺(tái)啟動(dòng)云接入

打開騰訊云云開發(fā)網(wǎng)頁控制臺(tái)的云函數(shù)菜單,然后點(diǎn)擊HTTP觸發(fā)標(biāo)簽,開啟HTTP觸發(fā),云接入就啟動(dòng)啦,云接入的默認(rèn)域名就是https://{你的環(huán)境id}.service.tcloudbase.com/

在前面我們已經(jīng)上傳了一個(gè)webtest的云函數(shù)(其他云函數(shù)也都可以的哦),點(diǎn)擊進(jìn)入webtest云函數(shù)的管理頁,然后點(diǎn)擊右上角的編輯,在HTTP 觸發(fā)路徑里輸入/webtest(也可以是其他值),保存之后,在瀏覽器里打開以下鏈接(網(wǎng)頁控制臺(tái)直接就有鏈接)就可以訪問云接入了:

https://{你的環(huán)境id}.service.tcloudbase.com/webtest

大家可以對(duì)比一下event、context對(duì)象與調(diào)用云函數(shù)返回的對(duì)象有什么不同。使用云接入調(diào)用云函數(shù)時(shí),HTTP 請(qǐng)求會(huì)被轉(zhuǎn)化為特殊的結(jié)構(gòu)體,稱之為集成請(qǐng)求,結(jié)構(gòu)如下:

{
    path: 'HTTP請(qǐng)求路徑,如 /hello',
    httpMethod: 'HTTP請(qǐng)求方法,如 GET',
    headers: {HTTP請(qǐng)求頭},
    queryStringParameters: {HTTP請(qǐng)求的Query,鍵值對(duì)形式},
    requestContext: {云開發(fā)相關(guān)信息},
    body: 'HTTP請(qǐng)求體',
    isBase64Encoded: 'true or false,表示body是否為Base64編碼'


}

這里的queryStringParameters是HTTP請(qǐng)求的Query,我們可以在鏈接里傳入一些參數(shù),比如在訪問云接入的鏈接里加一些參數(shù):

https://xly-xrlur.service.tcloudbase.com/webtest?name=bbsky&location=shenzhen

2、使用Cloudbase Cli啟動(dòng)云接入

在前面我們已經(jīng)了解到通過在終端輸入cloudbase --help可以了解到Cloudbase Cli有哪些命令(盡管cloudbase是全局的,建議大家在云開發(fā)項(xiàng)目的根目錄執(zhí)行),我們可以看到關(guān)于云接入的命令有:

  service:switch [options]                  開啟/關(guān)閉 HTTP Service 服務(wù)
  service:auth:switch [options]             開啟/關(guān)閉 HTTP Service 服務(wù)訪問鑒權(quán)
  service:create [options]                  創(chuàng)建 HTTP Service
  service:delete [options]                  刪除 HTTP Service
  service:list [options]                    獲取 HTTP Service 列表
  service:domain:bind [options]     綁定自定義 HTTP Service 域名
  service:domain:unbind [options]   解綁自定義 HTTP Service 域名
  service:domain:list [options]             查詢自定義 HTTP Service 域名

由這些命令,我們可以在終端里輸入以下命令來開啟和關(guān)閉云接入,比如開啟云開發(fā)環(huán)境id為xly-xrlur的云接入服務(wù):

cloudbase service:switch -e xly-xrlur

而我們可以執(zhí)行以下命令創(chuàng)建一條云接入路由,路徑為 /webtest,指向的云函數(shù)為 webtest:

cloudbase service:create -p /webtest -f webtest

除了可以使用瀏覽器里打開云接入的鏈接,我們還可以使用cURL命令行來調(diào)用云接入,比如我們可以在終端輸入以下命令:

curl https://xly-xrlur.service.tcloudbase.com/webtest

3、參數(shù)的傳入與獲取總結(jié)

我們有必要重新梳理一下一些參數(shù)的傳入與獲取相關(guān)的知識(shí),我們往云函數(shù)里傳入?yún)?shù)的方式有調(diào)用云函數(shù)時(shí)傳入?yún)?shù)、訪問云接入鏈接時(shí)傳入?yún)?shù)以及配置云函數(shù)環(huán)境時(shí)添加配置信息,那這三種方法又是如何獲取這些參數(shù)呢?(還有一種是通過require模塊、文件,這里就不多做介紹了)

調(diào)用云函數(shù)傳入?yún)?shù)

在小程序端、Web端以及云函數(shù)端,我們可以通過callFunction的接口(小程序端為wx.callFunction、云函數(shù)端為cloud.callFunction、web端為app.callFunction)來調(diào)用云函數(shù),并傳入?yún)?shù):

wx.cloud.callFunction({
  name: 'webtest', //被調(diào)用的云函數(shù)的名稱
  data: {
    userInfo:{
      name:"李東bbsky"
    },
    id:"20200420001"
  }
})

那我們應(yīng)該如何獲取使用調(diào)用云函數(shù)時(shí)傳遞的參數(shù)呢?我們可以從event對(duì)象里拷貝:

const {userInfo,id} = event

訪問云接入鏈接時(shí)傳入?yún)?shù)

我們通過訪問云接入鏈接或axios等進(jìn)行HTTP 請(qǐng)求的方式也能向云函數(shù)里傳遞參數(shù),這個(gè)參數(shù)會(huì)在queryStringParameters對(duì)象里,我們可以通過

const {name,title} = event.queryStringParameters

云函數(shù)配置信息傳入?yún)?shù)

我們可以在云開發(fā)控制臺(tái)對(duì)云函數(shù)進(jìn)行一些參數(shù)的配置,也就是新增環(huán)境變量的字段,這個(gè)參數(shù)在云函數(shù)的獲取方式如下:

const {school,name} = process.env

二、后臺(tái)函數(shù)與云接入

有了云接入的概念,我們可以把云函數(shù)分為兩類,在前面的章節(jié)云函數(shù)主要用于調(diào)用云函數(shù)、處理數(shù)據(jù)庫、云存儲(chǔ)云調(diào)用,我們可以稱之為后臺(tái)函數(shù),而HTTP函數(shù)則是我們可以通過標(biāo)準(zhǔn)HTTP請(qǐng)求來調(diào)用的。

參考上節(jié)Web端云開發(fā)的內(nèi)容,在functions文件夾里新建一個(gè)云函數(shù)比如backfunction,然后在index.js里輸入以下代碼,注意有一個(gè)dbName的參數(shù)會(huì)由HTTP請(qǐng)求傳入:

const tcb = require('@cloudbase/node-sdk')
tcb.init({
  env: "xly-xrlur"
})
const db = tcb.database()
const _ = db.command
exports.main = (event,context) =>{
  const {dbName} = event.queryStringParameters //注意queryStringParameters的來源
  return db.collection(dbName) 
  .where({              
    gdp: _.gt(3000)     
  })
  .get()
}

然后安裝該云函數(shù)的依賴,將云函數(shù)的代碼部署上傳到云端,并開啟云接入以及設(shè)置路由,具體操作前面都有介紹,然后我們?cè)跒g覽器里打開如下鏈接,就能看到云函數(shù)返回的數(shù)據(jù)了。

http://xly-xrlur.service.tcloudbase.com/backfunction?dbName=china

在小程序端我們知道獲取獲取可以使用wx.request()接口,而在web端我們則可以使用axios,在靜態(tài)托管的html頁面,比如打開之前public文件夾里的index.html,輸入以下代碼,然后打開鏈接,然后在瀏覽器的控制臺(tái)可以獲取到的數(shù)據(jù)啦:




三、返回集成響應(yīng)

云函數(shù)可以返回String、Object、Number等類型的數(shù)據(jù),還能返回集成響應(yīng),云接入會(huì)將返回值轉(zhuǎn)化成正常的HTTP響應(yīng),我們接下來使用云接入來返回一些靜態(tài)資源文件。

1、使用集成響應(yīng)返回HTML

使用VS Code在functions文件夾里新建一個(gè)云函數(shù),比如sendhtml,以及assets文件夾,里面存放我們要返回的HTML文件,結(jié)構(gòu)如下:

├── sendhtml   //sendhtml云函數(shù)目錄
│   └── assets
│       └── index.html
│   └── index.js
│   └── config.json
│   └── package.json

然后在index.js里輸入以下代碼,讀取云函數(shù)目錄assets文件夾里index.html,并返回HTML,這個(gè)云函數(shù)就和以往的云函數(shù)有很大的不同啦:

const tcb = require('@cloudbase/node-sdk')
tcb.init({
  env: "xly-xrlur"
})
const fs = require('fs')
const path = require('path')
exports.main = async (event,context) =>{
  //path.resolve() 方法將路徑或路徑片段的序列解析為絕對(duì)路徑
  const html = fs.readFileSync(path.resolve(__dirname, './assets/index.html'), {
    encoding: 'utf-8'
  })
  return {
    statusCode: 200,
    headers: {
        'content-type': 'text/html'
    },
    body: html
  }
}

在assets文件夾里index.html可以輸入一些html代碼,然后將sendhtml云函數(shù)部署上傳并開啟云接入,以及設(shè)置路由如/sendhtml之后,用瀏覽器打開云接入的地址,返回的HTML就被瀏覽器自動(dòng)解析了。

2、使用集成響應(yīng)返回其他類型的文件

除了html文件,還能返回其他類型的文件,在響應(yīng)中,Content-Type 實(shí)體頭部用于指示資源的MIME媒體類型,告訴Web端返回的內(nèi)容類型。媒體類型有很多,比如:

類型 描述 典型示例
text 普通文本類型 text/plaintext/htmltext/csstext/javascript
image 圖像類型 image/gifimage/pngimage/jpegimage/bmpimage/webpimage/x-iconimage/vnd.microsoft.icon
audio 音頻文件 audio/midiaudio/mpeg, audio/webm, audio/ogg, audio/wav
video 視頻文件 video/webmvideo/ogg
application 二進(jìn)制數(shù)據(jù)

將 content-type 分別設(shè)置為 application/javascript、text/css,即可在 body 中返回 JavaScript 文件和css文件,html、js、css文件是靜態(tài)網(wǎng)站的核心文件,都是可以返回的,這樣就用集成響應(yīng)返回一個(gè)完整的靜態(tài)網(wǎng)站啦。注意用集成請(qǐng)求返回的靜態(tài)網(wǎng)站和靜態(tài)托管之間的區(qū)別哦。

將content-type 設(shè)置為 image/png以及將 isBase64Encoded 設(shè)置為 true,就能返回圖片的二進(jìn)制文件,這個(gè)也可以和云存儲(chǔ)結(jié)合起來使用。比如我們可以寫如下云函數(shù),先下載云存儲(chǔ)里面的圖片,將Buffer轉(zhuǎn)成base64格式的圖片,然后返回,這樣我們就能通過云接入的鏈接查看到圖片了:

const cloud = require('wx-server-sdk')
cloud.init({
  env: "xly-xrlur"
})
exports.main = async (event,context) =>{
  const fileID = 'cloud://xly-xrlur.786c-xly-xrlur-1300446086/1572315793634-953.png'
  const res = await cloud.downloadFile({
    fileID: fileID,
  })
  const buffer = res.fileContent
  const base64img = await buffer.toString('base64')
  return {
    isBase64Encoded: true,
    statusCode: 200,
    headers: {
        'content-type': 'image/png'
    },
    body: base64img
  }
}


當(dāng)前名稱:創(chuàng)新互聯(lián)小程序云教程:云開發(fā)云接入與HTTP觸發(fā)
分享路徑:http://www.5511xx.com/article/djspgdp.html