QQ小程序 init

2020-07-11 16:01 更新

在云函數(shù)中使用 qq-server-sdk,需先調(diào)用初始化方法 init 一次,init 用于設(shè)置接下來(lái)在該云函數(shù)實(shí)例中調(diào)用云函數(shù)、數(shù)據(jù)庫(kù)、文件存儲(chǔ)時(shí)要訪問(wèn)的環(huán)境。 init 方法的定義如下:

function init(options): void

init 方法接受一個(gè) options 參數(shù),方法沒(méi)有返回值。 options 參數(shù)定義了云開(kāi)發(fā)的默認(rèn)配置,該配置會(huì)作為之后調(diào)用其他所有云 API 的默認(rèn)配置,options 提供的可選配置如下:

參數(shù)說(shuō)明

字段 類型 必填 說(shuō)明
env string object
timeout number 調(diào)用接口的超時(shí)時(shí)間(ms),默認(rèn)為 15000,即 15 秒。

當(dāng) env 傳入?yún)?shù)為對(duì)象時(shí),可以指定各個(gè)服務(wù)的默認(rèn)環(huán)境,可選字段如下:

字段 數(shù)據(jù)類型 必填 默認(rèn)值 說(shuō)明
database string default 數(shù)據(jù)庫(kù) API 默認(rèn)環(huán)境配置
storage string default 存儲(chǔ) API 默認(rèn)環(huán)境配置
functions string default 云函數(shù) API 默認(rèn)環(huán)境配置
default string 缺省時(shí) API 默認(rèn)環(huán)境配置

示例代碼

const cloud = require('qq-server-sdk')
cloud.init({
  env: 'test-x1dzi'
})

建議在設(shè)置 env 時(shí)指定 cloud.DYNAMIC_CURRENT_ENV 常量 ,這樣云函數(shù)內(nèi)發(fā)起數(shù)據(jù)庫(kù)請(qǐng)求、存儲(chǔ)請(qǐng)求或調(diào)用其他云函數(shù)的時(shí)候,默認(rèn)請(qǐng)求的云環(huán)境就是云函數(shù)當(dāng)前所在的環(huán)境:

const cloud = require('qq-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})


exports.main = async (event) => {
  const { ENV, OPENID, APPID } = cloud.getQQContext()


  // 如果云函數(shù)所在環(huán)境為 abc,則下面的調(diào)用就會(huì)請(qǐng)求到 abc 環(huán)境的數(shù)據(jù)庫(kù)
  const dbResult = await cloud.database().collection('test').get()


  return {
    dbResult,
    ENV,
    OPENID,
    APPID,
  }
}

  • 注:上述代碼中的 env 參數(shù)的值不能用

cloud.getQQContext().ENV 替代,因?yàn)樵?exports.main 外部調(diào)用的 getQQContext() 無(wú)法獲取到當(dāng)前環(huán)境 需要特別注意的是,在 qq-server-sdk 中不再兼容 success、fail、complete 回調(diào),總是只會(huì)返回Promise

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)