解锁「微信小程序」云开发环境变量设置的正确姿式 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

解锁「微信小程序」云开发环境变量设置的正确姿式

发表时间:2021-2-3

发布人:葵宇科技

浏览次数:213

微信小程序云开发可免费创建两套环境

  • test 用于测试
  • prod 用于线上

如果想创建多套环境,需付费,每套环境完全隔离,拥有完全独立的云函数、数据、资源存储库,相应地对于资源使用的独立统计,比如 本日数据库读请求数、本月云函数资源使用量,每套环境都有独立名称及 ID。

  1. 打开小程序开发者工具菜单栏

  2. 点击 云开发 打开云开发控制面板

  3. 点击 设置 可查看

进行云开发时

调用 cloud.init 初始化云能力

传入 env 参数指定云环境

云能力可在两个地方进行初始化:

  1. 小程序客户端
  2. 每个云函数中(一个云函数通常是一个独立的文件夹)

由于这两个地方都通过 cloud.init 初始化设置

通常会在开发时混淆从而引发一些报错

因此,正确设置 env 云环境变量显得尤为重要


小程序客户端 env 设置

通常在 app.jsonLaunch 方法中进行初始化

 wx.cloud.init({
    env: envID
  })
复制代码

envID 表示的环境 ID 必须明确设置

不要使用 wx.cloud.DYNAMIC_CURRENT_ENV 动态设置

如此设置最终解析后的值

指向第一个创建的云环境 ID

如果删除了这个环境,就指向另外一个

这会造成环境混乱、不可控

所以,一定要明确设置云环境 ID

小程序客户端指定了特定的云环境 ID

是不是就代表一定使用对应云环境的云函数、云数据的呢?

并不是

到了这一步,只是成功了一半

因为完全有可能出现

小程序客户端明确指定的 test 环境

结果使用 prod 环境的数据库

所以,接下来要正确设置云函数中的 env 参数

云端云函数 env 设置

为了便于管理、维护

通常一个云函数就是一个文件夹、模块、接口

每个云函数都要进行初始化:

const cloud = require('wx-server-sdk')
cloud.init({
  env: envID
})
复制代码

如果用到云数据库也可以使用 env 初始化:

const db = cloud.database({
  env: envID // 当然,不指定 env 效果相同
})
复制代码

为了保证当小程序客户端切换到指定云环境 ID

比如由 test 切换到 prod

云函数、云数据库 都动态切换到相应的环境

env 设置为 cloud.DYNAMIC_CURRENT_ENV 即可

通过上述设置

只要在小程序客户端一处修改 env 到指定的云环境

就会自动使用对应云环境的云函数、云数据库了

也就不会出现上述 test 环境使用 prod 数据库等环境交叉问题了


云开发 env 完整配置

小程序客户端 app.js 中:

  小程序客户端

云函数中:

  

相关案例查看更多