初始化

您所在的位置:网站首页 微信小程序云开发难吗 初始化

初始化

2024-07-12 01:19| 来源: 网络整理| 查看: 265

# 初始化

在小程序端开始使用云能力前,需先调用 wx.cloud.init 方法完成云能力初始化(注意小程序需先开通云服务,开通的方法是点击工具栏左上角的 “控制台” 按钮)。因此,如果要使用云能力,通常我们在小程序初始化时即调用这个方法。

# 小程序端初始化

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

function init(options): void

wx.cloud.init 方法接受一个可选的 options 参数,方法没有返回值。方法只能调用一次,多次调用时只有第一次调用生效。

options 参数定义了云开发的默认配置,该配置会作为之后调用其他所有云 API 的默认配置,options 提供的可选配置如下:

字段 数据类型 必填 默认值 说明 env string | object 是 后续 API 调用的默认环境配置,传入字符串形式的环境 ID 可以指定所有服务的默认环境,传入对象可以分别指定各个服务的默认环境,见下方详细定义 traceUser boolean 否 false 是否在将用户访问记录到用户管理中,在控制台中可见

当 env 传入参数为对象时,可以指定各个服务的默认环境,可选字段如下:

字段 数据类型 必填 默认值 说明 database string 否 空 数据库 API 默认环境配置 storage string 否 空 存储 API 默认环境配置 functions string 否 空 云函数 API 默认环境配置

注意:env 设置只会决定小程序端 API 调用的云环境,并不会决定云函数中的 API 调用的环境,在云函数中需要通过 wx-server-sdk 的 init 方法重新设置环境。

示例代码:

wx.cloud.init({ env: 'test-x1dzi' }) # 云函数端初始化

cloud.init 方法的定义如下:

function init(options): void

cloud.init 方法接受一个可选的 options 参数,方法没有返回值。方法只能调用一次,多次调用时只有第一次调用生效。

options 参数定义了云开发的默认配置,该配置会作为之后调用其他所有云 API 的默认配置,options 提供的可选配置如下:

字段 数据类型 必填 默认值 说明 env string | object 是 后续 API 调用的默认环境配置,传入字符串形式的环境 ID 或传入 cloud.DYNAMIC_CURRENT_ENV 可以指定所有服务的默认环境,传入对象可以分别指定各个服务的默认环境,见下方详细定义

当 env 传入参数为对象时,可以指定各个服务的默认环境,可选字段如下:

字段 数据类型 必填 默认值 说明 database string 否 default 数据库 API 默认环境配置 storage string 否 default 存储 API 默认环境配置 functions string 否 default 云函数 API 默认环境配置 default string 否 空 缺省时 API 默认环境配置

注意:env 设置只会决定本次云函数 API 调用的云环境,并不会决定接下来其他被调云函数中的 API 调用的环境,在其他被调云函数中需要通过 init 方法重新设置环境。

建议:在设置 env 时指定 cloud.DYNAMIC_CURRENT_ENV 常量 (需 SDK v1.1.0 或以上) ,这样云函数内发起数据库请求、存储请求或调用其他云函数的时候,默认请求的云环境就是云函数当前所在的环境:

const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) exports.main = async (event) => { const { ENV, OPENID, APPID } = cloud.getWXContext() // 如果云函数所在环境为 abc,则下面的调用就会请求到 abc 环境的数据库 const dbResult = await cloud.database().collection('test').get() return { dbResult, ENV, OPENID, APPID, } }

注:上述代码中的 env 参数的值不能用 cloud.getWXContext().ENV 替代,因为在 exports.main 外部调用的 getWXContext() 无法获取到当前环境

# API 风格

云开发的 API 风格与框架组件和 API 风格一致,但同时支持回调风格和Promise风格。在传入 API 的 Object 参数中,如果传入了 success、fail、complete 字段,则我们认为是采用回调风格,API 方法调用不返回 Promise。如果传入 API 的 Object 参数中 success、fail、complete 这三个字段都不存在,则我们认为是采用Promise风格,API 方法调用返回一个 Promise,Promise resolve 的结果同传入 success 回调的参数,reject 的结果同传入 fail 的参数。

# 注意事项 如果 init 时不传 env 参数,后续 API 调用将默认请求到第一个创建的环境,但这种方式并不总是预期的,因此这种方式已废弃,请务必明确传入 env 参数


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3