codecamp

QQ小程序 init

在云函数中使用 qq-server-sdk,需先调用初始化方法 init 一次,init 用于设置接下来在该云函数实例中调用云函数、数据库、文件存储时要访问的环境。 init 方法的定义如下:

function init(options): void

init 方法接受一个 options 参数,方法没有返回值。 options 参数定义了云开发的默认配置,该配置会作为之后调用其他所有云 API 的默认配置,options 提供的可选配置如下:

参数说明

字段 类型 必填 说明
env string object
timeout number 调用接口的超时时间(ms),默认为 15000,即 15 秒。

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

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

示例代码

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

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

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


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


  // 如果云函数所在环境为 abc,则下面的调用就会请求到 abc 环境的数据库
  const dbResult = await cloud.database().collection('test').get()


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

  • 注:上述代码中的 env 参数的值不能用

cloud.getQQContext().ENV 替代,因为在 exports.main 外部调用的 getQQContext() 无法获取到当前环境 需要特别注意的是,在 qq-server-sdk 中不再兼容 success、fail、complete 回调,总是只会返回Promise

QQ小程序 Cloud
QQ小程序 DYNAMIC_CURRENT_ENV
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

QQ小程序 开发

硬件能力

QQ小程序 云开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }