微信小程序云開發(fā)初始化

2022-05-12 15:55 更新

初始化

在小程序端開始使用云能力前,需先調(diào)用 wx.cloud.init 方法完成云能力初始化(注意小程序需先開通云服務(wù),開通的方法是點(diǎn)擊工具欄左上角的 “控制臺(tái)” 按鈕)。因此,如果要使用云能力,通常我們在小程序初始化時(shí)即調(diào)用這個(gè)方法。

wx.cloud.init 方法的定義如下:

function init(options): void

wx.cloud.init 方法接受一個(gè)可選的 options 參數(shù),方法沒有返回值。

options 參數(shù)定義了云開發(fā)的默認(rèn)配置,該配置會(huì)作為之后調(diào)用其他所有云 API 的默認(rèn)配置,options 提供的可選配置如下:

字段數(shù)據(jù)類型必填默認(rèn)值說明
envstring | objectdefault默認(rèn)環(huán)境配置,傳入字符串形式的環(huán)境 ID 可以指定所有服務(wù)的默認(rèn)環(huán)境,傳入對(duì)象可以分別指定各個(gè)服務(wù)的默認(rèn)環(huán)境,見下方詳細(xì)定義
traceUserbooleanfalse是否在將用戶訪問記錄到用戶管理中,在控制臺(tái)中可見

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

字段數(shù)據(jù)類型必填默認(rèn)值說明
databasestringdefault數(shù)據(jù)庫 API 默認(rèn)環(huán)境配置
storagestringdefault存儲(chǔ) API 默認(rèn)環(huán)境配置
functionsstringdefault云函數(shù) API 默認(rèn)環(huán)境配置

示例代碼:

wx.cloud.init({
  env: 'test-x1dzi'
})

云函數(shù)端初始化

cloud.init 方法的定義如下:

function init(options): void

cloud.init 方法接受一個(gè)可選的 options 參數(shù),方法沒有返回值。方法只能調(diào)用一次,多次調(diào)用時(shí)只有第一次調(diào)用生效。

options 參數(shù)定義了云開發(fā)的默認(rèn)配置,該配置會(huì)作為之后調(diào)用其他所有云 API 的默認(rèn)配置,options 提供的可選配置如下:

字段數(shù)據(jù)類型必填默認(rèn)值說明
envstring | object后續(xù) API 調(diào)用的默認(rèn)環(huán)境配置,傳入字符串形式的環(huán)境 ID 或傳入 cloud.DYNAMIC_CURRENT_ENV 可以指定所有服務(wù)的默認(rèn)環(huán)境,傳入對(duì)象可以分別指定各個(gè)服務(wù)的默認(rèn)環(huán)境,見下方詳細(xì)定義

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

字段數(shù)據(jù)類型必填默認(rèn)值說明
databasestringdefault數(shù)據(jù)庫 API 默認(rèn)環(huán)境配置
storagestringdefault存儲(chǔ) API 默認(rèn)環(huán)境配置
functionsstringdefault云函數(shù) API 默認(rèn)環(huán)境配置
defaultstring缺省時(shí) API 默認(rèn)環(huán)境配置

注意:env 設(shè)置只會(huì)決定本次云函數(shù) API 調(diào)用的云環(huán)境,并不會(huì)決定接下來其他被調(diào)云函數(shù)中的 API 調(diào)用的環(huán)境,在其他被調(diào)云函數(shù)中需要通過 init 方法重新設(shè)置環(huán)境。

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

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

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

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

  return {
    dbResult,
    ENV,
    OPENID,
    APPID,
  }
}
注:上述代碼中的 env 參數(shù)的值不能用 cloud.getWXContext().ENV 替代,因?yàn)樵?nbsp;exports.main 外部調(diào)用的 getWXContext() 無法獲取到當(dāng)前環(huán)境

API 風(fēng)格

云開發(fā)的 API 風(fēng)格與框架組件和 API 風(fēng)格一致,但同時(shí)支持回調(diào)風(fēng)格和Promise風(fēng)格。在傳入 API 的 Object 參數(shù)中,如果傳入了 success、fail、complete 字段,則我們認(rèn)為是采用回調(diào)風(fēng)格,API 方法調(diào)用不返回 Promise。如果傳入 API 的 Object 參數(shù)中 success、fail、complete 這三個(gè)字段都不存在,則我們認(rèn)為是采用Promise風(fēng)格,API 方法調(diào)用返回一個(gè) Promise,Promise resolve 的結(jié)果同傳入 success 回調(diào)的參數(shù),reject 的結(jié)果同傳入 fail 的參數(shù)。

注意事項(xiàng)

  • 如果 init 時(shí)不傳 env 參數(shù),后續(xù) API 調(diào)用將默認(rèn)請求到第一個(gè)創(chuàng)建的環(huán)境,但這種方式并不總是預(yù)期的,因此這種方式已廢棄,請務(wù)必明確傳入 env 參數(shù)


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)